首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在侦听块例程中使用“中介”作为接收器

在侦听块例程中使用“中介”作为接收器
EN

Stack Overflow用户
提问于 2015-02-05 21:01:12
回答 1查看 71关注 0票数 1

我有一个由其他人构建的ChaplinJS项目,我没有完全了解框架的某些细节。下面是一些我觉得很难摸索的地方:

代码语言:javascript
复制
listen: {
  'change model': 'render',
  'home:actionvideo mediator': 'show'
},

这段代码位于一个视图JS文件中。我熟悉这种类型的事件处理,我的理解是第一位("home:actionvideo")是事件的名称,第二部分(“中介”)是元素选择器,冒号后面的位是响应事件运行的函数的名称。

但是在卓别林世界,我认为“中介”实际上是指卓别林核心的Chaplin.mediator对象。这是正确的吗?

在我做这个的时候,第一行change model会听Chaplin.model吗?哪个Chaplin.model

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-25 23:30:05

是的,这是正确的。

卓别林能够侦听以下方法:

代码语言:javascript
复制
var MyView = Chaplin.View.extend({

  events: {
    // Listen to $ DOM events
    'click button': 'methodName',
    'change select#myid': 'methodName',
    ...
  },

  listen: {
    // Listen to Chaplin events
    'onAddedToDOM': 'methodName',
    ...

    // Listen to model events
    'change:foo model': 'methodName',
    // Listen to collection events
    'reset collection': 'methodName',
    // Custom mediator events (or Chaplin events, like router:route etc.)
    'pubSubEvent mediator': 'methodName',
    // The value can also be a function.
    'eventName': function() {alert('Hello!')}
  },

使用mediator类,通过受控通道进行发布/或订阅直接通信

代码语言:javascript
复制
this.publishEvent('pubSubEvent', ['Joe', 'Schmoe']);

或者在你的视野之外:

代码语言:javascript
复制
require('chaplin');

Chaplin.mediator.publishEvent('pubSubEvent', ['Joe', 'Schmoe']);

您可以在这里找到事件委托的源代码:https://github.com/chaplinjs/chaplin/blob/master/src/chaplin/views/view.coffee#L299-308

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28353922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档