2014-06-05 80 views
1

我想將一個簡單的事件附加到一個對象,所以當一個屬性被改變時事件觸發。我正在使用backbone.js來嘗試實現這一點。以下是我的代碼。Backbone.js「on change」事件沒有正確觸發

var person = { 
    name: "bob" 
}; 

_.extend(person, Backbone.Events); 

person.on("change:name", function() { 
    alert("Triggered"); 
}); 

person.name = "fred"; 

如果我使用person.trigger("change:name");該事件被觸發,所以我不知道爲什麼它不workign當我簡單地使用person.name = "fred";任何幫助表示讚賞!謝謝

回答

1

它不會那樣工作。

您可以使用一個普通的JavaScript就可以了對象,並觸發事件:

var person = { 
    name: "bob" 
}; 

_.extend(person, Backbone.Events); 

person.on("change:name", function() { 
    alert("Triggered"); 
}); 

person.name = "fred"; 
person.trigger("change:name"); 

或者你可以使用一個骨幹模型,做這個最適合你:

var Person = Backbone.Model.extend({ 
    initialize: function(){ 
     this.on("change:name", function() { 
     alert("Triggered"); 
     }); 
    } 
}); 

var person = new Person({ name: "bob" }); 
person.set({ name: "john" }); 
相關問題