0
문제는 ng-click의 속성으로 표현식을 포함하는 콘텐츠를 복제 할 때 부모 컨트롤러의 범위에서 변경이 발생하지 않는다는 것입니다 이 바이올린에 볼 수 있습니다 : 당신의 매개자 내용의 내부에 숨기기 상자를 클릭하면
아무런 반응이 없습니다.
다음<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,
}
})