Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 在主干视图中侦听属性更改_Backbone.js_Backbone Views_Backbone Events - Fatal编程技术网

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。