0

我有一个ActivitiesController列出一组活动的 ArrayController。该模型Activity定义了所有长时间运行的状态,但我想将浏览器中的状态保留在控制器中。特别是在显示活动时,我希望有一个切换开关showDetails,指示是否为每个活动提供摘要或详细视图。

使用计算属性执行此操作很容易。例如这有效:

duration: function() {
  if (!this.get('start_time') || !this.get('end_time')) { return false; }
  return moment(
  this.get('end_time'),"YYYY-MM-DD HH:mm:ss")
      .diff(moment(this.get('start_time'),"YYYY-MM-DD HH:mm:ss"),"minutes");
}.property('start_time', 'end_time')

但我想知道的是如何添加一个简单的属性,例如:

showDetails : false // where "false" is just the initialised state of course

这似乎将此属性附加到所有数组元素而不是基于每个属性。对不起,如果这是一个非常基本的问题,但我的头因为撞到墙上而感到疲倦。

4

1 回答 1

0

我想你可以itemController在你的ActivitiesController. 以最简单的形式,例如:

App.ActivitiesController = Ember.ArrayController.extend({
    itemController: 'activity'
});

ActivityController存在

App.ActivityController = Ember.ObjectController.extend({
    showDetails: false
});

所以你所有的模型都ActivitiesController将被包裹在一个ActivityController你可以拥有“非持久”属性showDetails或任何你想要的东西的地方。

于 2013-08-09T18:57:30.700 回答