0

动机:我想用日志功能将主干模型中的所有函数包装起来,以便更容易地跟踪函数调用。

我正在迭代模型函数并用下划线 wrap() 扭曲它们。

但看起来来自“事件”哈希的事件函数绑定没有被包装,因为看起来这些函数被复制并存储在 DOM 中的某个地方,不确定。

有没有人也遇到过这个问题,或者有任何解决方法的想法?

在这些函数中手动输入 console.log() 不是我想要的。

4

1 回答 1

1

我认为您遇到的问题与人们尝试测试events-hash 提供的功能时遇到的问题相同。直接在 View 上监视事件回调不起作用,但在实例化之前监视类原型是可行的。

// This won't work
var view =  new SomeView();
spyOn(view, 'onClick');
view.$el.click(); // spy isn't called

// This works
spyOn(SomeView.prototype, 'onClick');
var view =  new SomeView();
view.$el.click(); // spy is called

尝试在创建“类”后立即对其进行迭代prototype,因为这应该是events-implementation 调用的方法所在的位置。

于 2013-10-15T08:49:08.523 回答