2014-12-15 5 views
1

브로드 캐스트/방출을 사용하지 않고 각도로 컨트롤러간에 통신하는 방법에 대해 혼란스러워합니다. 우리가 기능 2가 호출하려는, 브로드 캐스트/방출없이 컨트롤러간에 어떻게 통신 할 수 있습니까?

은의 우리가

$scope.calledOnClick = function() { } 

와 Controller1 있다고 가정 해 봅시다 그리고 calledOnClick가 ng-click에서 실행될 때 우리는

$scope.function2 = function() { } 

와 컨트롤러 2있다.

나는이를 위해 방송을 사용할 수 있다는 것을 알고 있지만 몇 가지 대안은 무엇입니까?

+3

https://egghead.io/lessons/angularjs-sharing-data-between-controllers – Utopik

+0

[부모 및 자식 범위] 사용 (http://stackoverflow.com/questions/21453697/angularjs-access-parent-scope) -from-child-controller) – Blazemonger

답변

0

컨트롤러 대신 지시문을 사용하는 경우 상위, 하위 또는 형제 지시자의 컨트롤러가 필요하고 그런 식으로 호출 할 수 있습니다.

또 다른 옵션은 콜백 이벤트를 수신하기 위해 컨트롤러를 어떻게 든 등록하는 공통 서비스를 갖는 것입니다. 그런 다음 적절한 전화를 전달할 수 있습니다.

당연히 $ scope 상속을 사용할 수도 있고 직접 메서드를 호출 할 수도 있습니다. 혼란 스러울 수 있으므로 권장하지는 않습니다.