我的Route对象中有一个模型钩子,如下所示:
model: function(params) {
// return an active filter for activities on given date
return this.store.filter('activity',function(activity){
var itemDate = new Date(activity.get('start_time'));
itemDate = moment(itemDate).format('YYYY-MM-DD');
return itemDate === params.on_date;
});
}
路由的currentModel
会填充DS.FilteredRecordArray
并设置了所有适当的值,但由于某种原因,模型永远不会传递给控制器,因此我的模板{{#each}} {{/each}}
仍为空。
我创建了一个hack,我在其中添加了以下内容:
setupController: function(controller, model) {
controller.set('model',this.get('currentModel'));
}
这实际上在您第一次加载控制器时有效,但在transitionTo
到达路径时会进入无限循环。好吧,无论如何,这是一个黑客攻击。有谁知道我怎么能让这个工作成为“Ember方式”?
答案 0 :(得分:2)
您需要使用您的模型(filter
函数的结果)填充控制器的内容,如下所示:
setupController: function(controller, model) {
controller.set('content', model);
}
虽然这也应该是默认行为,但我认为你不需要明确定义它。