문제

나는 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>";

데모

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top