2013-06-20 3 views
0

이렇게 많은 방법을 시도했지만 여전히 이것을 파악할 수 없습니다. 중첩 된 지시문의 템플릿에 ng-class = "{menuVisibleAnimation : menuOpen}"메뉴가 있습니다. 부모 지시문에서 버튼을 클릭하면 menuOpen의 값을 true로 변경하려고하지만 하위 지시문의 메뉴가 업데이트되지 않습니다.중첩 된 지시어의 ng-class

http://plnkr.co/edit/nOunKkch0Gt8hjMWtruA?p=preview

+0

버튼을 클릭하면 클래스가 div : '

' –

+0

에 대해 켜기/끄기로 전환됩니다.보기 div와

버튼을 모두 클릭하면 아이디어가 나타납니다. 당신이 말했듯이,보기 div 만 토글하지만 메뉴가 아닙니다. – otissv

답변

1

구현의 주요 문제는 부모와 자식 지시 사이 menuOpen의 가치를 공유 할 수는 $ 범위를 사용하기를 원하지만 부모 지시어는 고립 범위를 가지고 있다는 것입니다 :

두 지시어가 공유하는 범위에 menuOpen을 선언해야합니다. 중첩되기 때문에 부모 지시문의 부모 범위 여야합니다. 따라서 부모 지시문에서 새 범위를 작성하면 안됩니다.

scope: false, 
link: function($scope) {  
    $scope.menuOpen = false; 
    $scope.toggleMenu = function() { 
    $scope.menuOpen = !$scope.menuOpen; 
    }; 
} 

그런 다음 openMenu는 하위 지시문에서 액세스 할 수 있습니다. 너 Plunker의 포크에서 그것을보십시오.

+0

감사합니다, 모든 작품! :) – otissv

관련 문제