问题集监听器
Posted
技术标签:
【中文标题】问题集监听器【英文标题】:Problems set listener 【发布时间】:2013-11-18 16:33:10 【问题描述】:我尝试为模型配置一个监听器。我有一个包含方法渲染的主要视图(是一个表):
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;
此代码失败,并带有消息:
Uncaught TypeError: Object # has no method 'on'
在 AuditoriaView 行中:
this.listenTo(this.model, 'change', this.render);
有什么想法吗?
【问题讨论】:
【参考方案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);
【讨论】:
不必指定this.model = options["aModel"];
。如果在实例化 Backbone.View,
this.model` 时传递对象(如果传递了对象 model:someModel
),则在调用 initialize
之前分配。其他一些选择属性也是如此。以上是关于问题集监听器的主要内容,如果未能解决你的问题,请参考以下文章