2013-10-14 1 views
0

동기 부여 : 함수 호출을보다 쉽게 ​​수행 할 수 있도록 로그 기능을 사용하여 백본 모델 내의 모든 함수를 래핑하려고합니다.백본 모델에서 이벤트 매개 변수로 지정된 함수를 래핑 할 수 없습니다.

저는 모델 함수를 반복하고 밑줄 wrap()을 사용하여 워핑합니다.

그러나 '이벤트'해시의 이벤트 함수 바인딩이 이러한 함수가 복사되어 DOM의 어딘가에 저장되어있는 것처럼 보이지 않으므로 래핑되지 않습니다.

아무도이 문제 또는 해결 방법에 대한 아이디어를 얻었습니까?

이 함수에서 console.log()를 수동으로 입력하는 것은 내가 원하는 것이 아닙니다.

답변

1

사람들이 events -hash와 함께 제공된 기능을 테스트하려고 할 때와 같은 문제가 발생한다고 생각합니다. 보기에서 직접 이벤트 콜백을 감시하는 것은 작동하지 않지만 인스턴스화하기 전에 클래스 프로토 타입을 감시하는 것이 효과적입니다.

// 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 

events -implementation 호출하는 방법이 있어야합니다 곳이어야하기 때문에, 바로 그것을 만든 후 사용자의 '클래스'의 prototype 반복하십시오.

+0

좋은 아이디어는이 문제로 돌아갈 시간이 언제 있을지 시험해 볼 것입니다. 그러나 이것이 트릭을 해야하는 것처럼 보입니다. – user2846569

+0

이 방법으로 해결 되었습니까? – jakee

관련 문제