javascript – Backbone.js:更改view.attributes并不反映在view.el上

我有这样的骨干观点

 window.InputView = Backbone.View.extend({
        tagName:'input',
        className:'',
        attributes:{},
        initialize:function(){
            this.attributes=this.model.attributes;
            this.el = this.make(this.tagName,this.attributes,'');
        }
    });

我遇到的问题是,当我修改View的属性哈希时,它没有反映在el上,

所以我必须做这样的事情this.el = this.make(this.tagName,this.attributes,”);
为了反映变化.

这是唯一的方法,还是有更好的方法呢?喜欢自动化吗?

最佳答案 要在模型更改时自动执行您尝试执行的操作,您需要将方法绑定到模型的更改事件.在初始化方法中,您需要以下内容:

initialize: function() {
    this.model.on("change", updateElement);
    ...
}

然后在视图中定义该方法:

updateElement: function() {
    //use this.model.attributes to update your el
}

现在,只要与该视图关联的模型发生更改,updateElement方法就会运行.

点赞