在视图中听模型事件

时间:2013-01-24 06:40:04

标签: backbone.js

我尝试在模型更改时渲染视图。 你能告诉我为什么这段代码不会炒作吗?

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>   

1 个答案:

答案 0 :(得分:4)

版本on中的off0.9.0方法已添加到Backbone,看起来您仍然是版本0.3.3。您可以继续使用bindunbind。新的on / off方法只是同一个方法的别名。

或者,您应该考虑更新Backbone版本。由于0.3.3已经有数百个其他改进和错误修正到Backbone,所以如果你能够,你应该更新到最新的(0.9.10)。同时,您需要将下划线更新为版本>= 1.4.3