Javascript 如何在没有嵌套样板的情况下创建嵌套管线

Javascript 如何在没有嵌套样板的情况下创建嵌套管线,javascript,ember.js,Javascript,Ember.js,我的余烬路线设置如下: App.Router.map(function() { this.resource("subreddit", { path: "/r/:subreddit_id" }, function() { this.resource('link', { path: '/:link_id'} ); }); }); 但是我想在一个完全独立的模板中查看每个链接。换句话说,我想呈现一个不同的html块,而不是将链接html呈

我的余烬路线设置如下:

App.Router.map(function() {
        this.resource("subreddit", { path: "/r/:subreddit_id" }, function() {
          this.resource('link', { path: '/:link_id'} );
        });
      });

但是我想在一个完全独立的模板中查看每个链接。换句话说,我想呈现一个不同的html块,而不是将链接html呈现到subreddit的{{outlet}中

如果要在单独的模板中呈现链接,则不应嵌套路由:

App.Router.map(function() {
  this.resource("subreddit", { path: "/r/:subreddit_id" });
  this.resource('link', { path: '/:link_id'});
});
您可以采取的另一种方法是使用命名出口,覆盖相应路线的
renderTemplate
,并在命名出口的位置呈现模板,请查看此处以了解更多信息:


希望有帮助。

当您在浏览器中点击
/r/xxx
时,Ember将查找与
子Reddit
相关的两个模板。它首先查找
'subreddit'
,然后查找
'subreddit/index'
。如果找到了“
subreddit
”,则将其呈现,如果还找到了“
'subreddit/index'
,则将其呈现到
'subreddit'
{outlet}}
中。如果找不到
'subreddit'
,Ember将直接转到
'subreddit/index'
'subreddit'
模板也会为嵌套在
/subreddit
下的任何子路径呈现,例如
/r/xxx/yyy
'link'
模板<代码>'subreddit'有点像“每模型布局”模板,允许您包装(装饰)所有子路径模板

类似这样的东西应该允许您保留嵌套的路由,并允许您使用余烬默认行为

<script type="text/x-handlebars" data-template-name="subreddit">
  <p>A static header bar for this subreddit could go here, or not.</p>
  {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="subreddit/index">
  <p>
    All of the details of the subreddit go here, this will be rendered
    into the {{outlet}} of "subreddit".
  </p>
</script>

<script type="text/x-handlebars" data-template-name="link">
  <p>
    Link view goes here.  This template will replace "subreddit/index" 
    in the {{outlet}} of "subreddit".
  </p>
</script>

此子Reddit的静态标题栏可以放在这里,也可以不放在这里

{{outlet}} 子Reddit的所有细节都在这里,这将被呈现 进入“subreddit”的{outlet}}。

链接视图在这里。此模板将替换“subreddit/index” 在“subreddit”的{outlet}}中。


如果我想在非嵌套路由中访问:subreddit_id怎么办?@Brandon,这就是为什么我提出了不同的方法,这样你就可以保留嵌套路由并在不同命名的outlet路径中呈现模板!如何使我的模型在subreddit/索引中而不仅仅是subreddit中可用?您还有一个
SubredditIndexRoute
SubredditIndexController
。您几乎可以重命名
Subreddit
子控件,或者您可以定义这两个控件的自己版本,然后使用
needs
和属性绑定来访问
SubredditController
的模型。