_.extend(object, Backbone.Events);
object.on("myalert:one", function(msg) {
document.body.innerHTML+=("eve1 " + ' msg:= '+msg+ ' ;name:= '+this.name);
},context);
object.on("myalert:two", function(msg) {
document.body.innerHTML+=(" eve2 " + ' msg:= '+msg+ ' ;name:= '+this.name);
});
我希望所有事件都通过mask alert:绑定到该对象。
object.trigger("myalert", "param");
没有任何命名空间,Backbone.Events
但您可以添加自己的名称。例如,如下所示:
obj.trigger_matching = function(re) {
var args = [''].concat([].splice.call(arguments, 1));
for(name in this._events) {
if(!name.match(re))
continue;
args[0] = name;
this.trigger.apply(this, args);
}
};
可以让你说obj.trigger_matching(/^myalert:/, 1, 2, 3)
,正确的事情将会发生。
演示:http://jsfiddle.net/ambiguous/p8p5R/
这将触发多个'all'
事件(每个事件一个this.trigger.apply
),这可能是您想要的,也可能不是您想要的。如果不是,则将this.trigger.apply
呼叫替换为标准的自定义版本,trigger
以便您最多可以触发一个'all'
事件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句