我有一个模型,它是集合的一部分,并从api中检索数据。此模型包含(以及其他属性)以下属性:
alpha
我的问题是,我应该如何/何时设置状态属性?有没有办法在尝试检索值时动态设置状态? (即modelObj.get(" status") - >调用函数来计算值,返回结果)。或者我应该从视图中调用一个函数来在初始化时更新此属性,然后添加一个在更改时执行相同操作的事件侦听器? (< - 某种程度上似乎不是最佳解决方案)
我有一种感觉,我过度思考这个问题并且有一种非常实用的方法,但我对Backbone仍然缺乏经验。
感谢。
答案 0 :(得分:0)
您可以设置状态的初始值,并在模型初始化时收听updatedDate
或lastUpdateAttempt
的进一步更改。
像
这样的东西Backbone.Model.extend({
initialize: function(){
this.updateStatus();
this.on("change:updatedDate change:lastUpdateAttempt",this.updateStatus);
},
updateStatus: function(){
// your logic
}
});
或者你可以尝试这种奇怪的方式(根本没有测试过,只是思考),这有点像在访问它时更新状态。如果要控制状态更新的频率,可能会有所帮助。 (如果您可能访问的状态方式少于其他两个属性可能发生的更改次数)
Backbone.Model.extend({
initialize: function(){
this.updateStatus();
this.on("updateStatus",this.updateStatus);
},
updateStatus: function(){
// your logic
}
});
并访问状态,例如model.trigger('updateStatus').get('status')