我有一个带有require的指令。现在我想在链接函数中获取所需的控制器实例和指令的控制器。怎么可能?如果我设置'要求'链接函数的第四个参数仅包含所需的控制器。如果我没有设置要求,则链接函数的第四个参数包含指令的控制器。如何获得两者?
答案 0 :(得分:2)
你应该同时需要两个,然后第四个参数将是一个控制器数组(与所需指令的顺序相同。
E.g。来自Angular的ngModel
指令的源代码(需要访问NgModelController
及其包装形式的FormController
):
var ngModelDirective = function() {
return {
require: ['ngModel', '^?form'],
controller: NgModelController,
link: function (scope, elem, attrs, ctrls) {
...
var modelCtrl = ctrls[0],
formCtrl = ctrls[1] || nullFormCtrl;
...