记住控制器属性值的最佳方法是什么?请看这里:
jsbin示例
我希望记住,如果展开了一个元素,但仅在当前会话期间,我不希望将此值保存到数据存储中。问题是,执行以下步骤:
“专辑”也崩溃了!“专辑”中的值isExpanded丢失了,似乎每一次ember都会重新创建控制器。我们用哪一种方法来记住isExpanded的价值?
发布于 2013-11-01 20:54:44
可以将属性添加到模型中。
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');
}
}http://jsbin.com/OtEBoNO/2/edit
发布于 2013-11-01 20:30:39
如果希望将该值保存到控制器的生存期之后,则需要将其保存在一个控制器中,只要您希望它存在,该控制器就会保持在作用域内(我不确定您的全部意图是什么,但如果它确实是页面值的生命周期,您可能希望将其存储在应用程序控制器上)
http://jsbin.com/osoFiZi/5/edit
App.AlbumController = Ember.ObjectController.extend({
needs: ['artist'],
actions: {
toggleExpanded: function() {
this.toggleProperty('controllers.artist.isAlbumsExpanded');
}
}
});https://stackoverflow.com/questions/19732668
复制相似问题