我尝试在模型更改时渲染视图。 你能告诉我为什么这段代码不会炒作吗?
var TodoView = Backbone.View.extend({
initialize: function() {
this.model.on('change', this.render, this);
},
});
它给出错误:
TypeError: this.model.on is not a function
但看起来这段代码有效:
var TodoView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'render');
this.model.bind('change', this.render);
},
});
使用这些库:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
答案 0 :(得分:4)
版本on
中的off
和0.9.0
方法已添加到Backbone,看起来您仍然是版本0.3.3
。您可以继续使用bind
和unbind
。新的on
/ off
方法只是同一个方法的别名。
或者,您应该考虑更新Backbone版本。由于0.3.3
已经有数百个其他改进和错误修正到Backbone,所以如果你能够,你应该更新到最新的(0.9.10
)。同时,您需要将下划线更新为版本>= 1.4.3