0

我是 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>

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

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

    {{outlet}}
</script>

好的...为了管理这个名为应用程序的模板,我创建了一个控制器对象。

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。

对不起,很长的文字,感谢您的帮助!

4

1 回答 1

0

默认情况下this.route(routeName),Router map 中声明的每个都将有一个[routeName]Controller,[routeName]Route和 expect 一个[routeName]模板,遵循http://emberjs.com/guides/concepts/naming-conventions/中描述的这些约定。

要从一条路线更改为另一条路线,您可以使用:

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

您可以在路由指南http://emberjs.com/guides/routing中找到更多信息

我希望它有帮助

于 2013-09-26T13:21:05.963 回答