Updating Backbone Model Attributes Dynamically
我有一个模型是集合的一部分,并从api检索数据。该模型(除其他属性外)包含以下属性:
1 2 3 | 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仍然缺乏经验。
谢谢。
您可以设置状态的初始值,并在初始化模型时侦听对
类似
的东西
1 2 3 4 5 6 7 8 9 | Backbone.Model.extend({ initialize: function(){ this.updateStatus(); this.on("change:updatedDate change:lastUpdateAttempt",this.updateStatus); }, updateStatus: function(){ // your logic } }); |
或者您可以尝试这种奇怪的方式(完全没有经过测试,只是一个想法),有点像在访问状态时更新状态。如果您想控制状态更新的频率,可能会有所帮助。 (如果您访问状态的方式少于其他两个属性可能发生的更改次数)
1 2 3 4 5 6 7 8 9 | Backbone.Model.extend({ initialize: function(){ this.updateStatus(); this.on("updateStatus",this.updateStatus); }, updateStatus: function(){ // your logic } }); |
并访问
之类的状态