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メソッドは version で Backbone に追加されましたが0.9.0、まだ version のようです0.3.3bindとを引き続き使用できますunbind。新しいon/offメソッドは、同じものの単なるエイリアスです。

または、Backbone のバージョンを更新することを検討してください。0.3.3Backbone には他にも何百もの改善とバグ修正が行われているため、可能であれば最新 ( ) に更新する必要が0.9.10あります。同時に、アンダースコアをバージョンに更新する必要があります >= 1.4.3

于 2013-01-24T07:18:59.267 に答える