Backbone.js 模型更改时主干视图不刷新

Backbone.js 模型更改时主干视图不刷新,backbone.js,backbone-views,Backbone.js,Backbone Views,我收到一个错误“Object[Object Object]在控制台中没有方法“apply”。请看小提琴。。 您的语法有点不正确,首先,对于“声明”视图和模型,您应该省略new关键字,其次,您不应该直接“实例化”backbone.js模型,请尝试以下方法 var RefreshingView = Backbone.View.extend({ el: 'body', initialize: function () { this.mo

我收到一个错误“Object[Object Object]在控制台中没有方法“apply”。请看小提琴。。


您的语法有点不正确,首先,对于“声明”视图和模型,您应该省略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);

(1)实例化
主干。模型
而不必首先扩展它应该可以。(2) 没有
setInterVal
功能。扩展
主干网时出现的问题是
新的
。查看
是一个真正的问题。我认为直接尝试使用主干网模型被认为是不好的做法,但我想如果你不需要任何默认值等,这不会有什么坏处。(至于设置间隔,我没有发现拼写错误,我一看到有输出就停止了…)。谢谢。我想不出有哪种非人为的情况我会使用非扩展的
主干.Model
,但我认为它没有任何问题。我很确定我总是
var m=Backbone.Model.extend({})
,但我不知道这是一个好习惯、坏习惯还是最佳实践:)我认为保留一个扩展模型实例是一个好实践。在任何情况下,直接打电话都不会节省很多钱。
    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);