2013-04-07 2 views
0

모든 내부 NG 클릭 이벤트를 기다립니다

내가 ng-click 이벤트에 의해 활성화되는 기능을 가지고있다. 이 함수가 다른 ng-click 이벤트를 기다리고 싶습니다. 아이디어는 액션을 선택하고 그 액션에 대한 타겟을 선택하는 것입니다 (DOM에서 클릭 가능한 객체를 통해).

잘 모르겠습니다. 각도 지연 이벤트 (Q 사용)를 사용할 수 있음을 알고 있습니다. 그러나 내 범위 내에서 지연된 객체에 대한 참조를 보유 할 필요없이 원래 함수 내에서 ng-click 이벤트를 캡처하는 방법은 무엇입니까?

편집 :이 방법으로 설계하려는 이유는 "대상"이 동작을 수행하지 않는 한 ng-click에서 수행하려고하지 않기 때문입니다. 대상은 작업을 선택한 후에 만 ​​선택할 수 있습니다.

답변

3

문제를 올바르게 이해하면 컨트롤러의 $scope을 사용하여이 상태 정보를 추적 할 수 있습니다. 예를 들어 작업의 클릭 기능에서 $scope.action 속성을 설정합니다. 타겟의 ng-click 기능에서 적절한 $scope.action이 설정되어 있는지 확인하십시오.

여러 대상이 있고 각 대상에 대한 작업을 추적해야하는 경우 배열을 사용하여 어떤 작업이 선택되었는지 추적하십시오.

+0

이렇게하는 것이 가장 좋은 방법입니까? 범위 (이 경우)에서 상태 정보를 보유하는 것은 전역 변수를 사용하여 함수간에 상태 정보를 보유하는 것과 유사합니다. 나는 여섯 가지 목표 중 하나에서 행동을 수행 할 수있는 세 가지 캐릭터를 가지고있다; 각 캐릭터는 수행 할 작업 배열을 보유합니다. 가능한 한 모든 기능을 로컬로 유지하고 특정 문자에 대해 작업을 선택한 후 사용자 입력을 기다리고 싶습니다. 장기적으로 이것은 확장하기가 더 쉬울 것입니다. –

+0

나는 그것이 전역 변수만큼 나쁘지 않다고 생각한다 - 현재보기/컨트롤러에 대해 범위가 제한되어있다. 대신에 선택한 액션을 캐릭터 모델에 저장할 수도 있고 [함수 객체에 데이터를 바로 저장할 수도 있습니다.] (http://www.bennadel.com/blog/1522-Storing-Property-Data-In-Javascript- Function-Objects.htm). 나는 이것들 중 어느 것이 "최선의"방법인지 정말로 말할 수 없다. –