/ / Accéder aux contrôleurs parents du parent via l'attribut Angular require - angularjs, angularjs-directive

L'accès aux contrôleurs parents du parent via l'attribut Angular require - angularjs, angularjs-directive

Dans l'exemple ci-dessous, la directive accordéon-group partage un contrôleur et une portée avec l'accordéon principal, en utilisant l'attribut "require:" ^ accordéion "" de la directive accordéon-groupe.

Si je voulais créer une directive enfant, sous accordéon-group, comment aurait-il également accès au contrôleur d'accordéon? Exiger l'accordéon et le groupe accordéon ne semble pas fonctionner.

https://github.com/angular-ui/bootstrap/blob/master/src/accordion/accordion.js

Réponses:

1 pour la réponse № 1

Cela fonctionne comme ça. J'étais juste bête. Violon pour la postérité ici.

"use strict";

angular.module("myApp", []).controller("OneController", function() {
this.test = function(element) {
element.css("color", "red");
}
}).directive("one", function() {
return {
restrict: "E",
transclude: true,
replace: true,
controller: "OneController",
template: "<span ng-transclude>And a </span>",
}
}).directive("two", function() {
return {
restrict: "E",
transclude: true,
replace: true,
require: "^one",
template: "<span ng-transclude>and a </span>",
}
}).directive("three", function() {
return {
restrict: "E",
transclude: true,
replace: true,
require: "^one",
template: "<span ng-transclude>and a one two</span>",
link: function(scope, element, attrs, ctrl) {
ctrl.test(element);
}
}
});