动态更新骨干模型属性

时间:2015-11-20 00:54:26

标签: model-view-controller backbone.js attributes models

我有一个模型,它是集合的一部分,并从api中检索数据。此模型包含(以及其他属性)以下属性:

alpha

我的问题是,我应该如何/何时设置状态属性?有没有办法在尝试检索值时动态设置状态? (即modelObj.get(" status") - >调用函数来计算值,返回结果)。或者我应该从视图中调用一个函数来在初始化时更新此属性,然后添加一个在更改时执行相同操作的事件侦听器? (< - 某种程度上似乎不是最佳解决方案)

我有一种感觉,我过度思考这个问题并且有一种非常实用的方法,但我对Backbone仍然缺乏经验。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以设置状态的初始值,并在模型初始化时收听updatedDatelastUpdateAttempt的进一步更改。

这样的东西
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')