我有一个模型,我在多个视图中使用它。我想检测该模型上的更改事件(将其保存到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但是(如果我错了请请纠正我)我认为有问题的模型需要在一个集合中,但由于我不需要集合,我希望这是手动完成的。
答案 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);
}
});