我开始了解 Ember JS。我正在尝试创建一个帐户列表,并且在每个帐户旁边我想要一个链接来导航到该帐户的交易列表。当我加载请求 /accounts 的第一页时,我成功获取了我的帐户列表。但是当我点击
{{#linkTo transactions this}}see transactions{{/linkTo}}
浏览器 URl 转到 /#/transactions/1,但我得到一个空页面。如果我直接在浏览器中加载此 URL,则一切正常。但是从账户列表中点击一个账户,我什么也得不到。
账户模板如下:
<ul id="conta-list">
{{#each controller}}
<li>
Account: {{name}} {{#linkTo transactions this}}see transactions{{/linkTo}}
</li>
{{/each}}
</ul>
交易模板是:
<ul>
{{#each controller}}
<li>
{{description}} = ${{value}}
</li>
{{/each}}
</ul>
申请代码:
window.App = Ember.Application.create({
LOG_TRANSITIONS: true
});
App.Router.map(function () {
this.route('accounts');
this.route('transactions', { path: '/transactions/:account_id' });
});
App.AccountsRoute = Ember.Route.extend({
model: function () {
return App.Account.find();
}
});
App.TransactionsRoute = Ember.Route.extend({
model: function (params) {
return App.Transaction.find({ account_id: params.account_id });
}
});
App.Store = DS.Store.extend({
adapter: 'DS.RESTAdapter'
});
App.Account = DS.Model.extend({
name: DS.attr('string')
});
App.Transaction = DS.Model.extend({
description: DS.attr('string'),
value: DS.attr('number'),
account: DS.belongsTo('App.Account')
});
我在控制台中得到“对象 [对象对象] 没有方法 'addArrayObserver'”。
如果我重新加载浏览器,路由 /transactions/:account_id 只会访问服务器。