问题设置了监听器

时间:2013-11-18 16:33:10

标签: backbone.js model views

我尝试配置一个模型的监听器。我有一个包含渲染方法的主视图(是一个表):

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);

任何想法?。

1 个答案:

答案 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});