0

我有一個模型,我在多個視圖中使用。我想檢測該模型上的更改事件(將其保存到localStorage以進行持久化),但我希望更改獨立於每個視圖。檢測骨幹模型沒有清晰視圖的變化

有沒有辦法在模型本身或控制器上綁定模型更改事件(我也使用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,但(請請糾正我,如果我錯了)我認爲該模型需要在一個集合,但因爲我不需要一個集合,我希望手動執行此操作。

回答

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...

+0

這是偉大的 - 謝謝! – streetlight 2013-04-10 11:28:37