0
在下面的例子中,accordion-group指令使用accordion-group指令中的「require:'^ accordion'」屬性與父手風琴共享控制器和作用域。通過Angular需要屬性訪問父母的父控制器
如果我想在accordion-group下創建一個子指令,它如何訪問手風琴控制器?要求^手風琴和^ accordionGroup似乎並不奏效。
在下面的例子中,accordion-group指令使用accordion-group指令中的「require:'^ accordion'」屬性與父手風琴共享控制器和作用域。通過Angular需要屬性訪問父母的父控制器
如果我想在accordion-group下創建一個子指令,它如何訪問手風琴控制器?要求^手風琴和^ accordionGroup似乎並不奏效。
它的確如此。我只是很愚蠢。 後代小提琴here。
'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);
}
}
});
要求擁有'^ accordion'或'^ accordionGroup'的父控制器應該可以工作,我猜這裏還有別的事情要做。很難在沒有看到實時代碼的情況下提供更多的幫助,因此如果您可以在實驗中發佈一個重複遊戲,它會更容易。 – 2013-02-18 12:13:20
好吧,我會(這將是我的第一個jsfiddle!) – ehfeng 2013-02-18 22:48:55
我解決了它。它確實有效......我不知道我爲什麼不工作...... – ehfeng 2013-02-19 02:03:52