Я только начал изучать backbonejs. Это некоторые из моих демо строк кода:backbonejs - Почему это содержимое модели backbonejs не меняется?
var i = 0;
Player = Backbone.Model.extend({
default: {
name : "noName",
HP: 100,
MP: 100
},
initialize: function(){
i++;
this.name = "Player "+i.toString();
alert(this.name+" created !");
this.on("change:name", function(model){
var name = model.get("name");
alert("Change "+this.name+ " to "+name);
});
}
});
var p1 = new Player({HP: 200});
var p2 = new Player({MP: 200});
p1.set({name: "A"});
p2.set({name:"B"});
p1.set({name: "A2"});
Теперь, что меня смутило, что, почему, когда я запускаю этот код в браузере, то появляется:
Player 1 created !
Player 2 created !
Change Player 1 to A
Change Player 2 to B
Change Player 1 to A2
(почему не изменить А2 ?, потому что я уже сменил Player 1 на A?)
у вас есть ошибка - не по умолчанию: {} бушель по умолчанию: {} – Evgeniy
я изменил значение по умолчанию значения по умолчанию, но это не меняет вывод я буду говорить о @ @ – sonlexqt
, потому что вы задаете this.name = "Player" + i.toString(); - он сохраняется в корне объекта, p2.set ({name: "B"}); - обновлять данные в хеше атрибута. – Evgeniy