在没有独特视图的情况下检测Backbone Model上的更改

时间:2013-04-09 15:09:25

标签: backbone.js requirejs local-storage marionette backbone-model

我有一个模型,我在多个视图中使用它。我想检测该模型上的更改事件(将其保存到localStorage for persistent)但我希望更改独立于每个视图。

有没有办法在模型本身或控制器中绑定模型更改事件(我还使用Marionette和Require)?这是我的模特:

define([
'backbone',
'common'
],
function(Backbone, Common) {

//Define the App Namespace before anything else
var APP = Common.app_namespace || {};

APP.Models.UserModel = Backbone.Model.extend({

  //Set up default values 
  defaults: {
    "value" : "default"
    }

});

});

有一种简单的方法吗?我正在考虑使用backbone.localStorage但是(如果我错了请请纠正我)我认为有问题的模型需要在一个集合中,但由于我不需要集合,我希望这是手动完成的。

1 个答案:

答案 0 :(得分:2)

Backbone.Model扩展了Backbone.Events,所以是的,它可以监听并触发事件:

APP.Models.UserModel = Backbone.Model.extend({
  //Set up default values 
  defaults: {
    "value" : "default"
  },
  initialize: function() {
    this.listenTo(this, 'change', this.myCallback);
  }
});

And so on...