我正在使用一些主干和下划线创建一个事件对象,如下所示:
var appEvents = _.extend({}, Backbone.Events);
然后,我尝试创建一个函数,该函数将 console.log 记录所有触发到该对象的事件,无论它在哪里、如何或有什么侦听器,但我有点不确定我会怎么做。我仍在尝试使用 Backbone。
我认为使用 listenTo 方法是要走的路......但同样,我不确定我将如何实现它。
我正在使用一些主干和下划线创建一个事件对象,如下所示:
var appEvents = _.extend({}, Backbone.Events);
然后,我尝试创建一个函数,该函数将 console.log 记录所有触发到该对象的事件,无论它在哪里、如何或有什么侦听器,但我有点不确定我会怎么做。我仍在尝试使用 Backbone。
我认为使用 listenTo 方法是要走的路......但同样,我不确定我将如何实现它。
您可以只使用 Backbone 的特殊all
事件:
appEvents.on("all", function(eventName){
console.log(eventName + ' was triggered!');
});
var object = {};
_.extend(object, Backbone.Events);
object.on("alert:param1", function(msg) {
alert("Сработало " + msg);
});
object.on("alert:param2", function(msg) {
alert("Сработало " + msg);
});
object.on("all", function(eventName) {
console.log(eventName);
});
object.trigger("alert:param2", "событие");
object.trigger("alert:param1", "событие");
然后覆盖触发函数。
var trigger = appEvents.trigger;
appEvents.trigger = function(name) {
console.log('Event', name, 'triggered.');
trigger.apply(this, arguments);
};
但我仍然觉得整个故事很奇怪(再说一次,这只是我的看法)。