Obj von Direktive an Controller in AngularJS übergeben
Ich versuche, eine Direktive zu schreiben, die den übergeordneten Controller und den übergeordneten Formular-Controller abruft und sie als einzelnes Objekt an meinen Controller übergibt. Das habe ich:
HTML:
<div ng-controller="ParentController as self" ng-form="ParentForm">
<div ng-controller="ChildController1 as self" my-parent="self.parent">
ChildController1 parent:<br/>
{{self.parent}}
</div>
<br/>
<div ng-controller="ChildController2 as self" my-parent="self.parent">
ChildController2 parent:<br/>
{{self.parent}}
</div>
</div>
JS:
myApp.directive('myParent', function() {
var directive = {
restrict: 'A',
link: link
};
return directive;
function link(scope, element, attrs) {
var parentElement = element.parent();
var parentCtrl = parentElement.controller();
var formCtrl = parentElement.controller('form');
var parent = parentCtrl;
parent.form = formCtrl;
console.log("directive parent obj: ", parent);
// How can I pass the parent obj to controller???
}
});
Ich habe hier einen Plunker geschrieben, um die Situation besser zu erklären:https: //plnkr.co/edit/axnR6t2Q82IVtzftq7y7? p = preview
Ich weiß, dass ich in diesem Fall ControllerAs mit unterschiedlichen Namen in meinen Controllern verwenden könnte, aber ich muss dafür sorgen, dass sie mit einer Direktive funktionieren ("Einschränken: A" Direktive).
Kann mir bitte jemand bei diesem Problem helfen?