0

我正在按照http://trek.github.com/此处的教程进行操作,但我遇到了障碍。

index.html 中的 Ember 代码:

<script type="text/x-handlebars" data-template-name="application">
<h2>Ember Committers:</h2>
{{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="contributors">
{{#each person in controller}}
    {{person.login}}
{{/each}}
</script>

app.js 中的 Ember 代码:

App = Ember.Application.create();

// Application default controller and view
App. ApplicationController = Ember.Controller.extend();
App.ApplicationView= Ember.View.extend( {
    templateName: 'application'
});

// Contributors controller and view...
App. AllContributorsController = Ember.ArrayController.extend();
App.AllContributorsView= Ember.View.extend( {
    templateName: 'contributors'
});

App.Router = Ember.Router.extend({
    root: Ember.Route.extend({
        index: Ember.Route.extend({
            route: '/',
            connectOutlets: function(router) {
                // Here we connect the allContributers data & template to the outlet in the application template.
                router.get('applicationController').connectOutlet('allContributors', [{login:'wycats'},{login: 'tomdale'}]);
            }
        })
    })      
});

此时,当我运行它时,我希望看到文本“Ember Committers:”以及通过 connectOutlet() 指定的两个登录名。

我只看到标题文本而不是登录名,我没有收到任何错误。

有任何想法吗?

4

1 回答 1

0

只有当我按照 emberjs.com 指南页面http://emberjs.com/guides/routing/defining-your-routes/上的方式完成路线时,我才取得任何成功

您将通过以下方式定义路线

App.Router.map(function(){
    this.route('contributors');
});

此时,默认情况下,如果您转到 #/contributors,它会将贡献者模板放入 {{outlet}} (无需视图声明)。

如果您需要更改插座,您可以通过为贡献者创建一个路由(而不是路由器!这种混乱花费我一天的时间)来完成:

App.ContributorsRoute = Ember.Route.extend({
    connectOutlets: ...
});
于 2013-02-06T17:37:57.557 回答