new AppModel({})
, который вы создаете в AppView#initialize
, отличается от new AppModel({})
, который вы создаете в обработчике вашей кнопки. Вы просматриваете свойство xmlDeclarationAndDoctype
двух разных моделей и получаете два разных результата.
Вызов new AppModel(o)
, для некоторого набора опций o
, дважды не даст вам один и тот же объект. Backbone не отслеживает все объекты, которые он создал, это ваша работа или работа вашей коллекции. Если вы посмотрите на cid
ваших моделей, вы увидите:
http://jsfiddle.net/ambiguous/sjagf/
Возможно, вам нужна коллекция , которая поможет вам отслеживать ваши модели.
У вас больше проблем. Ваше представление использует глобальную переменную, model
:
window.AppView = Backbone.View.extend({
initialize : function () {
model = new AppModel({}); // This is a global
},
и это, вероятно, перезаписывается в вашем обработчике кнопок. Вы должны прикрепить model
к this
:
window.AppView = Backbone.View.extend({
initialize : function () {
this.model = new AppModel({});
},
render : function () {
this.model.renderFoobar();
}
});
Или, может быть, так:
window.AppView = Backbone.View.extend({
render : function () {
this.model.renderFoobar();
}
});
// And elsewhere...
var v = AppView.new({ model: new AppModel({}) });