【发布时间】:2014-10-19 20:07:06
【问题描述】:
我有需要访问多个指令控制器方法的情况。
我可以使用 require 从父指令访问方法,如下所示:
require:"^parentDirective"
但我还需要在单独的指令(不是父级)中访问一个方法,文档对use an array of strings 说如下:
require:["^parentDirective","directiveTwo"]
但这样做会导致错误,尽管这两个指令都已编译到 DOM。
我错过了什么吗?
这是我的指令:
angular.module('testModule', ['parentModule'], function () {
}).directive('testDirective', function() {
return {
restrict: 'AE',
templateUrl: 'testTemplate.tpl.html',
scope: {
value1: "=",
value2: "="
},
require:['^parentDirective','otherDirective'],
controller: function($scope,$modal,socketConnection) {
if(case_x == true){
$scope.requiredController_1.ctrl1Func();
}
else if(case_x == false){
$scope.requiredController_2.ctrl2Func();
}
},
link: function(scope,element,attrs,requiredController_1,requiredController_2){
scope.requiredController_1 = requiredController_1;
scope.requiredController_2 = requiredController_2;
}
};
});
【问题讨论】:
-
你能把所有三个指令放在一个小提琴或 plunker 中吗?我唯一看到的错误是在链接函数中,该函数接收一个控制器数组,而不是每个控制器单独(除非改变了)。
-
Here's a plunker 我正在尝试做的事情,但它似乎仍然无法正常工作,我不确定为什么。
标签: javascript angularjs angularjs-directive require