模型没有传播到控制器

时间:2013-10-07 12:52:40

标签: ember.js ember-data

我的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方式”?

1 个答案:

答案 0 :(得分:2)

您需要使用您的模型(filter函数的结果)填充控制器的内容,如下所示:

setupController: function(controller, model) {
    controller.set('content', model);
}

虽然这也应该是默认行为,但我认为你不需要明确定义它。