我正在构建强制性的TODO应用程序来学习余烬。
我在belongsTo / hasMany关系中有任务和标签(每个标签都有多个任务)。在显示任务时,我想在每个可用标记上显示计算属性。
型号:
App.Tag = DS.Model.extend({
tasks: DS.hasMany('task', {async: true}),
..
});
App.Task = DS.Model.extend({
tag: DS.belongsTo('tag', {async: true}),
..
});
路线:
App.TasksRoute = Ember.Route.extend({
model: function(params) {
return Ember.RSVP.hash({
tasks: this.store.find('task'),
tags: this.store.find('tag')
});
},
setupController: function(controller, model) {
this.controllerFor('tasks').set('content', model.tasks);
this.controllerFor('tags').set('content', model.tags);
}
});
代码控制器:
App.TagsController = Ember.ArrayController.extend({
needs: ["tag"]
})
代码控制器:
App.TagController = Ember.ObjectController.extend({
taskCount: function() {
// FOLLOWING DOES NOT WORK
return this.get('tasks.length')
}.property('tasks')
});
标记部分:
<ul>
{{#each tag in model}}
<li>
{{tag.name}} ({{controllers.tag.taskCount}} tasks)
</li>
{{/each}}
</ul>
计算属性'taskCount'不起作用。 “这个”有问题。
这种规范的做法是什么?如果是这样,那有什么不对?感谢
编辑:修正 我错过了 App.ApplicationSerializer = DS.ActiveModelSerializer.extend(); 我用渲染来获得控制器装饰: {{render'tag'tag}} 在渲染之前调用控制器