Nao*_*aor 17 backbone.js backbone-events backbone-views
我正在使用Backbone,我有一个定义了事件的视图:
....
events: {
'click .search-button': 'setModelTerm',
'change .source-select': 'setModelSourceId',
'change .source-select': 'activateSource'
},
....
Run Code Online (Sandbox Code Playgroud)
我希望在事件change .source-select触发时触发两种方法.问题是事件对象中的最后一个条目会覆盖前面的条目.
如何在一个事件中触发两个方法?
(我试图阻止编写另一种调用这两种方法的方法)
nik*_*shr 41
您可以在事件的哈希中传递包装函数来调用您的两个方法.
来自http://backbonejs.org/#View-delegateEvents
事件以格式编写
{"event selector": "callback"}.回调可以是视图上方法的名称,也可以是直接函数体.
尝试
events: {
'click .search-button': 'setModelTerm',
'change .source-select': function(e) {
this.setModelSourceId(e);
this.activateSource(e);
}
},
Run Code Online (Sandbox Code Playgroud)
阻止您添加相同事件/选择器对的唯一方法events是哈希-jQuery可以处理到同一元素/事件对的多个绑定。好消息是,jQuery事件允许您通过添加.myNamespace后缀来命名空间事件。实际上,这会产生相同的结果,但是您可以生成许多不同的密钥。
var MyView = Backbone.View.extend({
events: {
'click.a .foo': 'doSomething',
'click.b .foo': 'doSomethingElse'
'click.c .foo': 'doAnotherThing', // you can choose any namespace as they are pretty much transparent.
},
doSomething: function() {
// ...
},
doSomethingElse: function() {
// ...
},
doAnotherThing: function() {
// ...
},
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12268 次 |
| 最近记录: |