1

コンソールに「オブジェクト [オブジェクト オブジェクト] にはメソッド '適用' がありません」というエラーが表示されます。フィドルを参照してください.. http://jsfiddle.net/vineet85/AQx63/6/

var RefreshingView = new Backbone.View.extend({
    initialize: function() {
        this.model.on('change', this.render, this);
    },
    render: function() {
        this.$el.html(this.model.get('text'));
    }
});

var m = new Backbone.Model({text: new Date().toString()});
var myView = new RefreshingView({model: m, el: 'body'});

myView.render();

setInterVal(function() {
    m.set({text: new Date().toString()});
}, 1000);
4

1 に答える 1

2

あなたの構文は少しずれています。最初にビューとモデルを「宣言」するために new キーワードを除外する必要があります。次に、backbone.js モデルを直接「インスタンス化」しようとしてはいけません。代わりに次を試してください。

    var RefreshingView = Backbone.View.extend({
        el: 'body',

        initialize: function () {
            this.model.on('change', this.render, this);
        },
        render: function () {
            this.$el.html(this.model.get('text'));
        }
    });

    var MyModel = Backbone.Model.extend({
        text: null
    });

    var m = new MyModel({ text: new Date().toString() });
    var myView = new RefreshingView({ model: m, el: 'body' });

myView.render();

setInterval(function () {
    m.set({ text: new Date().toString() });
}, 1000);

更新されたjsFiddle

于 2013-01-22T00:15:27.163 に答える