使用“;调解员”;作为侦听块例程中的汇点
Using "mediator" as a sink in a listen-block routine
我有一个由其他人构建的ChaplinJS项目,我没有完全了解该框架的某些细节。我发现有一点很难理解:
listen: {
'change model': 'render',
'home:actionvideo mediator': 'show'
},
这段代码位于其中一个视图JS文件中。我熟悉这种类型的事件处理,我的理解是第一位("home:actionvideo")是事件的名称,第二部分("mediator")是元素选择器,冒号后面的位是响应事件运行的函数的名称。
但在卓别林的世界里,我认为"中介"实际上是指卓别林核心的Chaplin.mediator
对象。这是正确的吗?
当我在做的时候,第一行change model
不知怎么听了Chaplin.model
吗?哪个Chaplin.model
?
是的,这是正确的
chaplinjs能够监听以下方法:
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
类,通过受控信道发布/或订阅直接通信:
this.publishEvent('pubSubEvent', ['Joe', 'Schmoe']);
或在您的视野之外:
require('chaplin');
Chaplin.mediator.publishEvent('pubSubEvent', ['Joe', 'Schmoe']);
您可以在此处找到事件委派的源代码:https://github.com/chaplinjs/chaplin/blob/master/src/chaplin/views/view.coffee#L299-308
相关文章:
- 多个JavaScript子例程的实时DOM显示
- 支持 JavaScript 的检查例程适用于 Chrome/Opera/IE,但不适用于 Firefox/Safari
- 更合乎逻辑的设置超时例程
- 当访问文件时,我可以自动调用例程或函数吗
- 访问Chrome'的内部gzip例程
- Django:如何将模板变量传递给JavaScript OnClick例程
- 使用“;调解员”;作为侦听块例程中的汇点
- 看不到如何将洪水填充例程更改为 DFS 例程
- 使用异步子例程对一组函数进行计时
- 使用 attributes.add 在客户端更改文本框时调用例程
- 一个按钮上的多操作与javascript例程
- Facebook 信用回调例程未调用
- 我将如何使用闭包在 C# 中重写此 JavaScript 例程
- 如何将动画例程转换为通用的、可重用的 jQuery 函数
- 鼠标左键单击与 JavaScript 中的右键单击例程冲突
- Javascript 模态窗口例程每次单击都会执行更多时间
- 使用 Node.JS 设计机器人,这些机器人以随机超时和通用例程运行
- 如何将烦人的“for”循环转换为“Object.keys”例程或类似例程(JSLint)
- 有时不会发送电子邮件(如果必须运行第一个子例程,则会跳过第二个子例程)
- DOM 何时在 Javascript 例程中重新绘制