1

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

4

1 回答 1

2

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

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

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

于 2013-10-08T03:38:50.653 回答