Mar*_*ven 6 events backbone.js
各位,我是backboneJs的新手,我试着编写一个基本程序来返回events.on中的值,如下所示,但它不起作用.
$(function(){
// object.on(event, callback, [context])Alias: bind
var object = {};
_.extend(object, Backbone.Events);
object.on('add',function(a,b){
return a + b;
});
var sum = object.trigger('add',1,3);
// not as I expected.
alert(sum);
});
Run Code Online (Sandbox Code Playgroud)
我希望有人能给我一些理想,非常感谢.
Backbone.Events 不是为了返回值而创建的,而是作为对象的通知机制。注册回调的返回值将被忽略,并返回触发事件的实际对象(这就是为什么 sum 不包含 4)。
如果您确实需要从事件中提取某些内容,您可以像这样重构代码:
$(function(){
// object.on(event, callback, [context])Alias: bind
var object = {};
_.extend(object, Backbone.Events);
// register variable outside of callback scope
var sum;
object.on('add',function(a,b){
// store result inside variable coming from outside
sum = a + b;
});
// trigger don't return anything, but sum variable will be filled
object.trigger('add',1,3);
// not as I expected.
alert(sum);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1844 次 |
| 最近记录: |