Backbone.js 模型更改时主干视图不刷新
我收到一个错误“Object[Object Object]在控制台中没有方法“apply”。请看小提琴。。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
您的语法有点不正确,首先,对于“声明”视图和模型,您应该省略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);