所以我有一个类似于以下内容的页面
[ Nav Bar ]
| |
| Content |
| |
导航栏我希望在所有页面中保持不变。所以我使用的方法是按如下方式设置我的页面:
[ Nav Bar ]
{{outlet}}
这很棒,我现在可以将不同的页面呈现在不同路线的插座中。
但是如果我想将默认模板渲染到我的主页的插座中呢?
我设法通过将/
重定向到/home
来实现这一目标,但必须有更好的方法来执行此操作,这样我才能在/
处呈现默认主页重新路由?
任何建议表示赞赏,
谢谢, 丹尼尔
答案 0 :(得分:7)
要在根页面的{{outlet}}中呈现内容,您必须为索引定义处理程序栏脚本:
您的导航栏代码可能如下所示:
<script type="text/x-handlebars">
<div class="navbar ...">
...
</div>
{{outlet}}
</script>
将放置在{{outlet}}内的根页是暂停的:
<script type="text/x-handlebars" id="index">
<div class="container">
<h1>Root page!!</h1>
</div>
</script>
换句话说,您必须创建一个具有id =“index”的手柄脚本。
应该有效。它不需要任何js代码。
答案 1 :(得分:1)
我必须承认此属性没有详细记录并隐藏在Ember.View
的文档中,但您可以尝试在defaultTemplate
上设置ApplicationView
属性。有关详细信息,请参阅here(在“defaultTemplate”页面中搜索)。
希望它有所帮助。
答案 2 :(得分:0)
文档中的以下陈述帮助我解决了问题中所述的完全相同的问题: Ember routing docs
索引模板将呈现到应用程序模板中的{{outlet}}。如果用户导航到/ favorites,Ember将使用收藏夹模板替换索引模板。
当我在项目中使用pod结构时,我创建了一个具有默认模板的索引路径,并在我的application / template.hbs文件中放置了nav-bar组件。
应用/应用/ template.hbs:强>
<div id="pageWrapper">
<div id="navbarfixed">{{nav-bar options=options}}</div>
<div id="pageContent">
{{outlet}}
</div>
</div>
应用/索引/ template.hbs 强>
<div id="homeWrapper"> <!--This gets rendered by default in outlet above-->
Some default content of outlet
</div>