我有一个模型,该模型是集合的一部分,并从api检索数据。该模型(除其他属性外)还包含以下属性:
updatedDate //-> value retreived from API/DB
lastUpdateAttempt //-> value retrieved from API/DB
status //-> value NOT retrieved from API/DB, depends on values of above two attributes ("updated", "error", "out of date", etc...).
我的问题是,如何/何时设置状态属性?有没有一种方法可以在尝试检索值时动态设置状态?(即modelObj.get(“ status”)->调用函数以计算值,返回结果)。还是应该从视图中调用函数以在初始化时更新此属性,然后添加一个事件侦听器,该事件侦听器在更改时执行相同的操作?(<-似乎不是最佳解决方案)
我有一种想法,我想得太多了,并且有一种非常实用的方法来执行此操作,但是我对Backbone仍然缺乏经验。
谢谢。
您可以设置status的初始值,并监听模型初始化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')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句