Tôi có các tình huống sau: Một chỉ transclude với phạm vi riêng biệt trong đó có một bộ điều khiển đính kèm trong nó:Tiếp cận thị từ yếu tố nhúng
angular.module('app', [])
.directive('hello', function() {
return {
controller: function($scope) {
$scope.hello = "Hello World";
},
restrict: 'E',
replace: true,
transclude: true,
template: '<div class="hello" ng-transclude></div>',
scope: {}
};
});
Tôi đang mong chờ để truy cập điều khiển của chỉ thị từ các yếu tố nhúng :
<hello>
<h1>Hello Directive</h1>
<p>{{ hello }}</p>
</hello>
Tuy nhiên, điều này dường như không thể thực hiện được. Tôi đã thử truy cập hello
với $parent
và $$nextSibling
.
Có giải pháp nào cho trường hợp này không? Tôi không thể đặt bộ điều khiển trong trình bao bọc xung quanh trường hợp chỉ thị.
Tôi tạo ra một codepen để chứng minh hành vi này: http://codepen.io/jviotti/pen/ktpbE?editors=101
Trong ví dụ không làm việc, khuôn mẫu mong đợi biến {{hello}} nằm trong phạm vi gốc cha mẹ, nhưng nó thực sự nằm trong phạm vi chỉ thị hello. – goldins
Bài viết tại https://www.airpair.com/angularjs/posts/transclusion-template-scope-in-angular-directives đã giúp tôi hiểu tại sao nó hoạt động theo cách này. – sven