Ich muss einen Rückruf zu einer Child-Direktive hinzufügen, das ist kein isolierter Bereich. Ich weiß, dass Sie es mit einem isolierten Bereich tun können, Sie können auch scope. $ Parent verwenden, um darauf zuzugreifen, jedoch ist dies nicht immer korrekt, wenn der unmittelbare Elternteil der falsche Elternteil ist.Rückruf an nicht isolierten Bereich senden Kind
myApp.directive('parentDirective', function() {
return {
link: function(scope) {
scope.callback = function(msg) {
alert(msg);
}
}
}
});
myApp.directive('childDirective', function() {
return {
scope: true,
link: function(scope, element, attrs) {
var msg = 'from child';
if (angular.isDefined(attrs.callback)) {
scope.$parent.$apply(attr.callback);
}
}
}
});
Dies funktioniert, aber ich mag es nicht, ich hasse $ manuell mit auslösen anwenden oder $ zu verdauen, hassen auch noch versuchen, Umfang zugreifen. $ Parent, da dieser Bereich nicht immer die beabsichtigte ist ...
Gibt es dafür eine bessere Lösung?
Alles, was ich den 'Angular' Tag tat, war entfernt, weil es für Angular> = 2.0.0 und Ihre Frage ist offensichtlich über AngularJS 1 .xx Ich habe auch keine Antwort gepostet. Es gibt Tausende von Leuten, die die Angular Tags sehen, nicht nur ich ;-) –