我尝试配置一个模型的监听器。我有一个包含渲染方法的主视图(是一个表):
render: function(){
sesiones.each(function(sesion){
var view = new AuditoriaView({ aModel: sesion });
this.$el.append(view.render());
}, this);
return this;
}
并有一个辅助视图,代表一行(AuditoriaView):
initialize: function(aModel){
this.model = aModel;
// Cada vez que el modelo cambie, vuelve a renderizar
this.listenTo(this.model, 'change', this.render);
},
render: function(){
this.$el.html("blablablablabla");
return this;
}
此代码失败,并显示消息:
未捕获的TypeError:对象#没有方法'on'
在AuditoriaView专栏中:
this.listenTo(this.model, 'change', this.render);
任何想法?。
答案 0 :(得分:1)
您实际上并未传递模型而是传递对象。你可以像这样直接传递模型:
var view = new AuditoriaView(aModel);
或从参数
中取出aModel
initialize: function(options){
this.model = options["aModel"];
// Cada vez que el modelo cambie, vuelve a renderizar
this.listenTo(this.model, 'change', this.render);
},
编辑:
或传递这样的模型:
var view = new AuditoriaView({model: aModel});