为什么链接函数内部指令的语法错误?

时间:2014-10-27 12:45:44

标签: angularjs angularjs-directive angularjs-scope

我浪费了很多时间来弄清楚为什么我的指令链接功能不起作用:

在指令代码中,您可以为控制器编写此行:

 controller: ['$scope', '$element', function($scope, $element) {
            }],

但你不能为链接写相同内容,例如:

 link: ['scope', 'element', 'attrs', function(scope, element, attrs) {}]

只有这会起作用:

 link: function(scope, element, attrs) {}

为什么?

1 个答案:

答案 0 :(得分:2)

因为控制器是可注射的功能,而链接不是。这是一个传统的函数,其中参数的顺序很重要,而不是它们的名称。它按顺序接受

  • 指令的范围,
  • 指令的元素
  • 此元素的属性
  • 控制器
  • 转换功能

记录在案:https://docs.angularjs.org/api/ng/service/ $ compile#-link -