如何在新页面Ember js中渲染嵌套路由?

问题描述 投票:1回答:2

我目前正在尝试使用LinkTo通过使用{{outlet}}标记渲染到另一个新页面的另一个嵌套路由。

我有一个论坛route,并且嵌套了forum details路线

在论坛模板中:

<LinkTo @route="main.forum.forum-details" @model={{post}}>{{post.title}}</LinkTo>

{{outlet}}

enter image description here

如上图。嵌套的路线将在底部而不是新页面上呈现。我要如何将其渲染到新页面?我以为LinkTo实际上会将其链接到新页面,对吗?并且论坛详细信息应该在{{outlet}}标签处呈现,那么我应该在哪里放置{{outlet}}标签以使其呈现到新页面?

ember.js
2个回答
0
投票

您的问题是您需要了解nested routes

如果您的路线是main.forum.forum-details,则意味着您的路由器看起来像这样:

this.route('main', function() {
  this.route('forum', function() {
    this.route('forum-details');
  });
});

因此forum路由是forum-details路由的父路由。

并且在访问子路线时,必须理解父路线始终可见]很重要。

因此main.forum.forum-details余烬将渲染application路线,在其{{outlet}}内部将渲染forum路线,而在{{outlet}}内部将渲染forum-details路线。

因此,如果要任一

forum forum-details路线,则可以重组路线:
this.route('main', function() {
  this.route('forum');
  this.route('forum-details');
});

或者您可以将forum路线中当前的位置移动到forum.index路线中。如果某个路由包含子路由,并且没有一个子路由处于活动状态,则将始终有一个可以使用的index激活路由。


0
投票

我已经按照Ember Discussion的指南解决了这个问题>

© www.soinside.com 2019 - 2024. All rights reserved.