问题集监听器

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 之前分配。其他一些选择属性也是如此。

以上是关于问题集监听器的主要内容,如果未能解决你的问题,请参考以下文章

Web3:没有提供者集

Solidity知识点集 — Keccak256与事件(二)

[Core Java笔记]初学事件处理

TCP协议的十一种状态集,及子网划分

监听组件层次结构的关键事件

将所有 onclick 更改为事件侦听器