记住控制器属性值的最佳方法是什么?看看这里:
我想记住元素是否已展开,但仅在当前会话期间,我不想将此值保存到数据存储区中。问题是,执行以下步骤:
“相册”也崩溃了! “Album”中的值isExpanded
丢失了,似乎每次都会重新创建控制器。哪一个我们能够很好地解决isExpanded
的价值?
答案 0 :(得分:1)
如果你想让值持续超过控制器的生命周期,那么你需要将它保存在一个控制器中,只要你希望它存在就会保持在范围内(我不确定你的完整意图是什么) ,但如果它真的是页面值的生命周期,您可能希望将其存储在应用程序控制器上)
http://jsbin.com/osoFiZi/5/edit
App.AlbumController = Ember.ObjectController.extend({
needs: ['artist'],
actions: {
toggleExpanded: function() {
this.toggleProperty('controllers.artist.isAlbumsExpanded');
}
}
});
答案 1 :(得分:0)
您可以将属性添加到模型
App.Artist = DS.Model.extend({
isExpanded: false, // this property will not be included into PUT request when you will save record
name: DS.attr('string'),
albums: DS.hasMany('album', {async: true})
});
并在控制器中切换它
actions: {
toggleExpanded: function() {
this.toggleProperty('model.isExpanded');
}
}