Ich habe folgendes Szenario: Eine transcluden Richtlinie mit isolierten Rahmen, die einen Controller in ihm angebracht hat:Zugangsrichtlinie der Steuerung von transkludiert Elementen
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: {}
};
});
Ich freue mich auf die Richtlinie der von den transkludiert Elementen Controller für den Zugriff auf :
<hello>
<h1>Hello Directive</h1>
<p>{{ hello }}</p>
</hello>
Dies scheint jedoch nicht möglich zu sein. Ich habe versucht, auf hello
mit $parent
und $$nextSibling
zuzugreifen.
Gibt es eine Lösung für dieses Szenario? Ich bin nicht in der Lage, den Controller in Wrapper um die Direktive Instanz zu legen.
habe ich ein codepen dieses Verhalten zeigen: http://codepen.io/jviotti/pen/ktpbE?editors=101
Im nicht funktionierenden Beispiel erwartet die Vorlage, dass die Variable {{hallo}} im übergeordneten Stammbereich liegt, aber tatsächlich im Geltungsbereich der hallo-Direktive ist. – goldins
Der Artikel auf https://www.airpair.com/angularjs/posts/transclusion-template-scope-in-angular-directives half mir zu verstehen, warum es so funktioniert. – sven