EmberJS - 在分隔文件中添加一些模板

时间:2013-09-26 12:49:53

标签: ember.js

我是EmberJS的新手,一周前开始学习。好吧,我有一些名为 contactsTemplate.html 的.html文件,这是我想要使用的模板。如下所示:

<script type="text/x-handlebars" data-template-name="contacts">
    <h2>My Contact List</h2>

    {{#each contact in contactList}}
        {{contact.name}}
    {{/each}}
</script>

大。我有一个包含{{outlet}}表达式的 index.html 文件。这意味着每个新内容都会被加载到这个空间中,对吗?

<script type="text/x-handlebars" data-template-name="application">
    <h1>My Application</h1>

    {{outlet}}
</script>

好的...为了管理这个名为application的模板,我创建了一个Controller对象。

App.ApplicationController = Ember.ObjectController.extend({
    ...
});

与联系人模板相同:

App.ContactsController = Ember.Controller.extend({
    contactList: []
});

我创建了两条路由来管理页面之间的转换:

App.Router.map(function() {
    this.route("index", "/");
    this.route("contacts", "/contacts");
});

我怀疑是:

  1. 如何将此分隔文件与路线相关联?我的意思是,当我在浏览器 http://mysite.com/ 上调用时,应该加载index.html文件。当我致电 http://mysite.com/#/contacts 时,应加载contactsTemplate.html。
  2. 对于长篇文章感到抱歉,感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

默认情况下,路由器地图中每个声明的this.route(routeName)都会有一个[routeName]Controller[routeName]Route,并期望[routeName]模板,遵循{{3}中描述的这些约定}。

要从一个路线更改为其他路线,您可以使用:

  • 控制器内部this.transitionToRoute(routeName)
  • 路线this.transitionTo(routeName)
  • 模板内{{#link-to“routeName”}}我的路线{{/ link-to}}

您可以在路线指南http://emberjs.com/guides/concepts/naming-conventions/

中找到更多信息

我希望它有所帮助