在下面的示例中,accordion-group 指令与父手风琴共享一个控制器和范围,使用手风琴组指令中的“require:'^accordion'”属性。
如果我想在手风琴组下创建一个子指令,它将如何访问手风琴控制器?要求 ^accordion 和 ^accordionGroup 似乎不起作用。
https://github.com/angular-ui/bootstrap/blob/master/src/accordion/accordion.js
在下面的示例中,accordion-group 指令与父手风琴共享一个控制器和范围,使用手风琴组指令中的“require:'^accordion'”属性。
如果我想在手风琴组下创建一个子指令,它将如何访问手风琴控制器?要求 ^accordion 和 ^accordionGroup 似乎不起作用。
https://github.com/angular-ui/bootstrap/blob/master/src/accordion/accordion.js
它确实是这样工作的。我只是愚蠢。在这里为后人提琴。
'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);
}
}
});