有没有办法在控制台中自动输出所有backbone.js触发器/事件?

时间:2011-09-09 08:45:58

标签: javascript backbone.js

有没有办法在控制台中自动输出所有backbone.js触发器/事件,这样我才能看到正在发生的一切?

谢谢!

2 个答案:

答案 0 :(得分:5)

为此,您需要覆盖Backbone.Events'trigger'方法,然后在回调原始方法之前调用所需的代码。

这样的事情应该有效:

var originalTrigger = Backbone.Events.trigger;
Backbone.Events.trigger = function(){
  console.log("Event Triggered:");
  console.log(arguments.join(", "));
  originalTrigger.apply(this, arguments);
}

我不确定副手,但您可能需要将参数切片到实际数组中以调用apply:

originalTrigger.apply(this, Array.prototype.slice.call(arguments));

答案 1 :(得分:-1)

在这种情况下,您可以使用_.wrap方法。

这是我的coffeescript代码。

Backbone.Events.trigger = _.wrap(Backbone.Events.trigger, (fun) ->
    args = _.toArray(arguments).slice(1,)
    console.log.call console, _.flatten(['trigger', args])
    fun()
)