2014-03-12 2 views
1

저는 ExtJS를 기반으로하는 기존 응용 프로그램을 보유하고 있습니다. 우리는 여러보기에 걸쳐 단추가 있습니다. 버튼을 클릭 할 때마다 실제 로직이 실행되기 전에 일부 함수가 호출되어야한다는 변경 요청이 있습니다. 이 함수 호출은 모든 버튼 클릭 이벤트에 적용 할 수 있습니다.
ExtJS에서이 시나리오를 어떻게 처리 할 수 ​​있습니까?extjs 4.0의 버튼에 대한 기능과 같은 인터셉터를 만드는 방법은 무엇입니까?

+0

현재 사례에서 처리기/수신기가 어떻게 연결되어 있습니까? – A1rPun

+0

컨트롤러에서 모든 컨트롤에 참조를 추가하고 메서드 호출을 클릭 수신기에 바인딩합니다. – rajmalhotraml

+1

[this] (http://stackoverflow.com/questions/12902515/bind-click-event-for-all-buttons -in-app) 솔루션입니다. – A1rPun

답변

1

항상 각 수신기에 대해 호출되는 함수를 추가하지 못하게합니다.

click: function(btn) { 
    functionThatAlwaysRuns(); 
    // rest of your button specific logic here 
} 

이 당신이 컨트롤러에 공통 리스너에 모든 버튼을 묶는하고, 비록 일반적인 기능 후에 실행 특정하는 논리를 결정하는 전략 패턴을 사용하여 현저하게 정리할 수있는 코드처럼 들린다. 전략 패턴에 대한 좋은 예가 여기에 있습니다. http://encosia.com/first-class-functions-as-an-alternative-to-javascripts-switch-statement/

관련 문제