2014-12-10 2 views
0

문제는 ng-click의 속성으로 표현식을 포함하는 콘텐츠를 복제 할 때 부모 컨트롤러의 범위에서 변경이 발생하지 않는다는 것입니다 이 바이올린에 볼 수 있습니다 : 당신의 매개자 내용의 내부에 숨기기 상자를 클릭하면

http://jsfiddle.net/vt7rmqya/

아무런 반응이 없습니다.

다음
<div ng-controller="myCtrl"> 
    <panel ng-show='showBox'> 
     <div class='box'> 
      {{name}} 
      <br> 
      <button ng-click='showBox = false'>hide box button inside of transcluded content</button> 
     </div> 
    </panel> 
    <br> 

는, NG-클릭으로 발현 컨트롤러에서 $ scope.showBox에 영향을주지 않습니다하지만 그것은 매개자 내용의 범위는 컨트롤러 범위와 동일해야하기 때문이라고 생각 것입니다, 권리?

: 여기

BaseApp.controller('myCtrl', function($scope) { 
    $scope.name = 'bill jones'; 

    $scope.showBox = true; 

    $scope.hideBox = function() { 
     $scope.showBox = false; 
    } 
}); 


<panel ng-show='showBox'> 
    <div class='box'> 
     {{name}} 
     <br> 
     <button ng-click='hideBox()'>hide box button inside of transcluded content</button> 
    </div> 
</panel> 

이 작업 바이올린의 :

BaseApp = angular.module('BaseApp', []); 

BaseApp.controller('myCtrl', function($scope) { 
    $scope.name = 'bill jones'; 

    $scope.showBox = true; 
}); 

BaseApp.directive('panel', function() { 
    return { 
     restrict: 'E', 
     template: '<div>header<br><div ng-transclude></div></div>', 
     transclude: true, 
    } 
}) 

답변