ember.js 如何在新页面中呈现嵌套的路线Ember js?

w80xi6nr  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(152)

我目前正在尝试使用LinkTo通过使用{{outlet}}标记将另一个嵌套路由呈现到另一个新页面。
我有一个论坛route和嵌套的forum details路由
在论坛模板中:

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

{{outlet}}

如上图所示。嵌套的路由将呈现在底部,而不是新页面。我将如何呈现它到新页面?我想LinkTo将实际链接到新页面的权利?和论坛的详细信息应该呈现在{{outlet}}标签,所以我应该把{{outlet}}标签,让它呈现到新页面?

oxiaedzo

oxiaedzo1#

您的问题是需要了解嵌套路由。
如果您的路由为main.forum.forum-details,则表示您的路由器如下所示:

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

因此,forum路由是forum-details路由的父路由。
访问子路由时,* 父路由始终可见 *,了解这一点非常重要。
因此,对于main.forum.forum-details,ember将呈现您的application路线,在其{{outlet}}中,它将呈现forum路线,在此{{outlet}}中,它将呈现forum-details路线。
因此,如果您想要 * forum * 或 * forum-details路线,您可以重新构建路线:

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

或者您可以将forum路由中的现有内容移动到forum.index路由中。如果某个路由具有子路由,并且没有一个子路由处于活动状态,则始终会有一个index路由处于活动状态,您可以使用它。

相关问题