我有一个ArrayController ActivitiesController
,列出了一组活动。模型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
这似乎将此属性附加到所有数组元素而不是基于每个属性。对不起,如果这是一个非常基本的问题,但我的头已经厌倦了撞墙。
答案 0 :(得分:0)
我想你可以在itemController
上使用ActivitiesController
。最简单的形式,如:
App.ActivitiesController = Ember.ArrayController.extend({
itemController: 'activity'
});
,ActivityController
为
App.ActivityController = Ember.ObjectController.extend({
showDetails: false
});
所以ActivitiesController
中的所有模型都将包裹并带有ActivityController
,您可以拥有'非持久'属性,例如{{1或者你想要的任何东西。