련:지시어 컨트롤러와 통신은 범위가 있습니다.적용되지 않 작업
-
21-12-2019 - |
문제
나는 MainController 고 중첩된 지시어.내가 찾는 것에 이 예제 을 어떻게 통신 사이에 작동합 컨트롤러와 지시어지지 않을 것 같다.
기본적으로,내가 원하는 전화를 주 컨트롤러 범위 함수에서 사용자 지정 directive(버튼을 빈 카트).보 plunkr 예 아래.
Plukr: http://plnkr.co/edit/82STLkKxBK6htTnmnqlu?p=preview
때마다 나는 console.로그(scope.$적용("emptyCart()")),그것의 정의되지 않습니다.
참고:난을 피하려고 노력하$rootScope.방송이 가능한 한 많은...
해결책
당신이 사용하는 분리에 대한 범위의 부모 directive,그래서 아이 directive 액세스 권한을 가지지 않는 범위의 컨트롤러입니다.
하기 위해서 아이를 제공하는 지시어는 접근하는 범위 기능을 유지하면서 격리의 부모,추가할 수 있는 기능으로 scope: { ... }
시에서 부모 directive:
scope: {
...
emptyCart: '='
}
고 설정 기능에 이름을 해당 특성에 부모 directive 의 보 선언:
<div ... data-show="showPopup" empty-cart="emptyCart"></div>
할 수 있습니다 다음 건너뛰기의 해결 방법을 시도를 사용에 Plunker,단지 설정 ng-click
아이에 지시기 위해서 불 컨트롤러 기능:
sHTML = "<button ... ng-click='emptyCart()'>Empty cart</button>";
제휴하지 않습니다 StackOverflow