1

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

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>   
4

1 回答 1

4

onoff方法被添加到版本中的 Backbone 中,0.9.0看起来你仍然是版本0.3.3。您可以继续使用bindunbind。新的on/off方法只是同一事物的别名。

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

于 2013-01-24T07:18:59.267 回答