这是一些代码:
var TopPanel = Backbone.View.extend( {
initialize: function() {
this.listenTo(this.model, "change", this.render);
},
render: {
...
}
});
var MyData = Backbone.Model.extend({
initialize: function() {
},
defaults: {
team: {
level:0,
name: "bla"
}
}
});
var myData = new MyData();
var topPanel = new TopPanel({model: myData});
topPanel.render();
var anotherView = new AnotherView( {model: myData} );
在另一个视图中,我正在更改按钮单击时的模型,如下所示:
var team = this.model.get("team");
team.level = 1;
this.model.set("team", team);
当我在另一个视图中按下按钮时,它会按照上面的说明更改模型,但不会调用 topPanel 视图的渲染功能。但是,如果我将上面的代码更改为: var team = this.model.get("team"); 团队 = 1;this.model.set("团队", 团队);
调用渲染函数。
这是否意味着backbone.js 不支持监听Model 中复杂对象的变化?如果是这样,那么正确的方法是什么?