저는 angularJS에서 시작하고 있으며, 지시문과 컨트롤러로 범위를 지정하는 데 약간의 문제가 있습니다.격리 된 범위가있는 지시문에서 컨트롤러에 액세스하십시오.
아래 링크 된 예에서 두 가지 지시어가 있습니다. 하나의 속성 지시문 (showMessage
)과 하나의 요소 지시문 (parentDirective
)이 있습니다.
I는 요소를 클릭 할 때, 컨트롤러의 기능을 발사되도록 행동으로 showMessage
를 사용하려는. 이것은 정상적인 html 요소에서 잘 작동하지만, 내 parentDirective
에 적용하면 은 컨트롤러가 아닌 parentDirective
의 범위를 취합니다.
이 내용은 첨부 된 예에서 확인할 수 있습니다. "나 혼자 야."를 클릭하면 지시문에 컨트롤러의 범위가 있으므로 컨트롤러 범위의 showMessage
함수가 올바르게 호출됩니다. 그러나 "I 'm a directive"를 클릭하면 지시문이 이제 상위 지시문의 범위를 가지며 오류를 표시합니다.
상위 디렉티브에 격리 된 범위가있는 경우에도 중첩 된 디렉티브에서 컨트롤러 범위에 액세스 할 수있는 방법이 있습니까? 당신의 지침에 다음 <my-directive onsomeevent="functionInMyController()"></my-directive>
을 그리고 :
감사합니다. 이 다른 접근 방식은 내 요구 사항에 완벽하게 부합하며 이제 불필요한 동작 지시문을 제거 할 수 있습니다. 관심있는 사람이 있다면, 위의 방법을 사용하는 또 다른 jsfiddle입니다 : http://jsfiddle.net/HDEF7/3/ – Sam