Backbone.js 在主干视图中侦听属性更改
我想在更新视图中的Backbone.js 在主干视图中侦听属性更改,backbone.js,backbone-views,backbone-events,Backbone.js,Backbone Views,Backbone Events,我想在更新视图中的属性属性时调用该方法。下面的代码给了我一个错误:undefined不是函数 SimpleView = Backbone.View.extend({ initialize: function(){ this.attributes = _.extend(this.attributes, Backbone.Events); // update this.attributes.on('change', this.updateAttributes
属性
属性时调用该方法。下面的代码给了我一个错误:undefined不是函数
SimpleView = Backbone.View.extend({
initialize: function(){
this.attributes = _.extend(this.attributes, Backbone.Events); // update
this.attributes.on('change', this.updateAttributes(), this);
}
});
如何将事件侦听器优雅地绑定到属性
更新:我想我必须用
主干扩展属性
。事件
,这样我就可以监听更改。是 啊所以现在我不再有错误了,但还是什么都没发生。非常感谢您的帮助。尽管我建议您使用一个模型来保存属性,但如果您想继续使用当前的方法,您需要手动触发事件
this.attributes.trigger('change');
我已更新了您的,以便您了解它的工作原理。您确定要听视图的属性,还是您所指的模型?绝对确定。我指的是将添加到此视图的html标记中的属性(在我的例子中为“数据类型”)。因此,例如,每次模型的属性更改时,您都可以重新呈现视图
this.listenTo(this.model,'change',this.render,this)代码>那太好了,但是视图属性是独立于模型属性设置的。我觉得on()方法对任何对象都有效。你知道为什么在这种情况下它不起作用吗?没问题,我只是在我的问题中添加了一个JSFIDLE。