폴더를 나타내는 뷰가 있습니다. 이 하위 폴더 뷰가 생성하는 하위 뷰가 여러 개 있는데, 각 하위 뷰는 해당 폴더의 고유 한 축소판을 나타냅니다. 각각의 서브 뷰의 render 메소드는 여러 번 호출됩니다 (3). 보기의 렌더링 메서드가 호출되는 방법을 찾는 방법이 있습니까? 예를 들어, 모델 메타 데이터가 변경되면 트리거 이벤트를 렌더링 할 수있는 다른 장소가있다. 그것은 엄청난 난장판이되었고, 백본보기를 디버그하여 정확히 어떻게 렌더링 방법을 트리거 하는지를 알 수있는 방법을 찾고 있습니다.백본 뷰 렌더링 함수가 여러 번 호출되었습니다.
0
A
답변
1
이다 나는 항상 디버그 이벤트 방법 :
이view.on('all', function(eventName){
console.log('Name of View: ' + eventName);
});
당신은 뷰, 모델이나 컬렉션에이 작업을 수행 할 수 있습니다.
예를는 : http://jsfiddle.net/CoryDanielson/phw4t/6/
나는 백본 실제로 수행 할 방법을 시뮬레이션하기 위해 수동으로 request
및 sync
방법을 추가했다. rendered
이벤트는 맞춤 설정이므로 아무 것도 수신하지 않습니다. 어떻게/언제 일어날 지 보여 주기만하면됩니다.
0
backbone.debug
을 시도해 볼 수 있습니다. 어떤 사건이 해고되는지에 대한 통찰력을 제공해야합니다.
1
요청한대로 다음은 trigger
메서드를 재정의하는 방법의 예입니다. 모든 유형의 클래스 (Model, View, Collection, Router)에 대해이를 오버라이드해야합니다.
var trigger = Backbone.Model.prototype.trigger;
Backbone.Model.prototype.trigger = Backbone.View.prototype.trigger = Backbone.Collection.prototype.trigger = Backbone.Router.prototype.trigger = function(name) {
trigger.apply(this, arguments);
console.log(this, 'triggered the event', name, '.').
}
각 메소드를 개별적으로 대체하여 로그에 오브젝트 유형을 추가하면 더 구체적 일 수 있습니다. 그러나 당신은 일반적인 생각을 가지고 있습니다.
관련 문제
- 1. 백본 이벤트가 여러 번 호출되었습니다.
- 2. ControllerAs 패턴이있는 함수가 여러 번 호출되었습니다
- 3. javascript 이벤트 함수가 여러 번 호출되었습니다.
- 4. AWS 람다 Java 함수가 여러 번 호출되었습니다.
- 5. InitWithCoder가 여러 번 호출되었습니다.
- 6. chrome.tabs.onUpdated.addListener() 여러 번 호출되었습니다.
- 7. UIAlertview가 여러 번 호출되었습니다.
- 8. Application_Error가 여러 번 호출되었습니다
- 9. 버튼이 여러 번 호출되었습니다.
- 10. CryptHashData가 여러 번 호출되었습니다.
- 11. MouseListener가 여러 번 호출되었습니다.
- 12. jquery .click가 여러 번 호출되었습니다.
- 13. actionCreate가 여러 번 호출되었습니다. - Yii
- 14. 이 동작에서 렌더링 및/또는 리다이렉트가 여러 번 호출되었습니다.
- 15. 이 작업에서 렌더링 및/또는 리디렉션이 여러 번 호출되었습니다 ..?
- 16. 레일 - 렌더링 및/또는 리디렉션이이 작업에서 여러 번 호출되었습니다.
- 17. Blackberry SendListener가 여러 번 호출되었습니다.
- 18. node.js 콜백이 여러 번 호출되었습니다
- 19. SQLiteOpenHelper onUpgrade가 여러 번 호출되었습니다
- 20. 어댑터 getView가 여러 번 호출되었습니다.
- 21. 스크롤 이벤트가 여러 번 호출되었습니다
- 22. Ajax 콜백이 여러 번 호출되었습니다.
- 23. ListView에서 OnScoll이 여러 번 호출되었습니다.
- 24. DLL 내보내기 함수가 두 번 호출되었습니다.
- 25. Scoped Bean preRenderView 메소드가 여러 번 호출되었습니다.
- 26. Firebase Authenticatoin - onAuthStateChanged가 여러 번 호출되었습니다.
- 27. 백본 응용 프로그램에서 여러 번 렌더링 된 컬렉션
- 28. jQuery show()가 여러 번 호출되었습니다.
- 29. 백본 이벤트가 여러 번 발생했습니다.
- 30. shouldAutorotateToInterfaceOrientation는 순환없이 여러 번 연속으로 호출되었습니다.
트리거되는 이벤트를 추적하기 위해'trigger' 메소드를 대체 할 수 있습니다. – Loamhoof
몇 가지 예를 들어 주시겠습니까? – sublime