Ember.js 在ArrayController中扩展模型属性
我有一个列有一组活动的ArrayControllerEmber.js 在ArrayController中扩展模型属性,ember.js,ember-data,Ember.js,Ember Data,我有一个列有一组活动的ArrayControllerActivitiesController。模型活动定义了所有的长期运行状态,但我希望在控制器中保持浏览器状态。特别是在显示活动时,我希望有一个切换开关showDetails,指示是否为每个活动提供摘要或详细视图 使用计算属性执行此操作非常简单。例如,这项工作: duration: function() { if (!this.get('start_time') || !this.get('end_time')) { return false
ActivitiesController
。模型活动
定义了所有的长期运行状态,但我希望在控制器中保持浏览器状态。特别是在显示活动时,我希望有一个切换开关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
这似乎将此属性附加到所有数组元素上,而不是基于每个属性。对不起,如果这是一个非常基本的问题,但是我的头因为撞到墙上而累了 我想您可以在
活动控制器上使用项目控制器
。以最简单的形式,如:
App.ActivitiesController = Ember.ArrayController.extend({
itemController: 'activity'
});
使用ActivityController
App.ActivityController = Ember.ObjectController.extend({
showDetails: false
});
因此,ActivitiesController
中的所有模型都将被一个ActivityController
包装,在这里您可以拥有“非持久性”属性,如showDetails
或任何您想要的属性。如果我没弄错,您想在每个型号的活动上都有一个showDetails
属性吗?@inuitivepixel是的