Javascript Ember js链接模板包括
我正致力于构建简单的Ember js模板链接,由于我对Ember有些陌生,而且我来自PHP背景,因此我尝试根据PHP经验构建将Ember模板包含在另一个模板中的想法,例如:Javascript Ember js链接模板包括,javascript,templates,ember.js,Javascript,Templates,Ember.js,我正致力于构建简单的Ember js模板链接,由于我对Ember有些陌生,而且我来自PHP背景,因此我尝试根据PHP经验构建将Ember模板包含在另一个模板中的想法,例如: <script type="text/x-handlebars" id="top-nav">HTML HEADER</script> <script type="text/x-handlebars" id="index">{{render 'top-nav'}} HTML body<
<script type="text/x-handlebars" id="top-nav">HTML HEADER</script>
<script type="text/x-handlebars" id="index">{{render 'top-nav'}} HTML body</script>
HTML标题
{{render'top nav'}}HTML正文
其背后的想法是,我希望“顶级导航”模板包含在每个余烬模板中。我知道{{outlet}}在类似的情况下也能工作,但它不会提供代码行数少的灵活性 我的问题是:有没有更合理的方法将模板插入到模板中
谢谢。在另一个模板中插入模板的最佳方法就是使用视图
{{view 'top-nav'}}
定义您的模板,如:
<script type="text/x-handlebars" data-template-name="top-nav">
... template markup
</script>
就这样。您可以在此处找到有关它的更多文档:
编辑
正如@GJK所指出的,如果您使用的是Ember 1.13或更高版本,那么从Ember 1.13开始,视图已被弃用。我建议您改用组件
{{top-nav}}
组件的工作方式与视图过去的工作方式类似。你可以在这里找到更多关于他们的信息。最终,这取决于您使用的是什么版本的余烬
是否有更合理的方法将模板插入模板
这正是partials的用途。您可以阅读有关部分模板的更多信息。要点是您希望使用以开头的文件名创建可重用零件。例如:
{{! _header.hbs }}
<header>
<nav>...</nav>
</header>
这将确保所有页面都具有所需的标题,因为每个顶级模板都将在outlet内部呈现
如果您在决定使用什么时遇到困难,请使用partials,直到遇到问题。在这一点上,您可能会更有能力处理应用程序模板和复杂的模板结构。请注意,视图在Ember 1.13中被弃用,而在Ember 2.0中被完全删除(有一个兼容性插件,但并不打算长期使用)。“但它不会提供代码行数较少的灵活性”。它怎么可能比写{{outlet}}
短呢?你能澄清你的担忧吗?
{{! _header.hbs }}
<header>
<nav>...</nav>
</header>
{{! application.hbs }}
<header>
<nav>...</nav>
</header>
{{outlet}}