我现在写了几个指令。他们中的一两个人使用了自己的控制器。我一直在研究一些 angular 自己的指令是如何工作的,以及一些 angular UI 引导指令是如何工作的。
他们有时也使用控制器。在大多数情况下,控制器似乎只是添加了一种包装代码并使其更加模块化的好方法。我敢肯定,关于您的指令何时应该获得自己的控制器,必须有一些更合理的建议。
我现在写了几个指令。他们中的一两个人使用了自己的控制器。我一直在研究一些 angular 自己的指令是如何工作的,以及一些 angular UI 引导指令是如何工作的。
他们有时也使用控制器。在大多数情况下,控制器似乎只是添加了一种包装代码并使其更加模块化的好方法。我敢肯定,关于您的指令何时应该获得自己的控制器,必须有一些更合理的建议。
从文档:
...读者可能想知道链接和控制器之间有什么区别。基本区别在于控制器可以公开 API,链接函数可以使用 require 与控制器交互。
如果您有两个或多个指令需要在它们之间共享数据,建议在一个指令中定义一个控制器,然后在另一个指令中要求它:
.directive('myFirstDirective', function(){
return {
//...
controller: function(){
this.doSomething = function(){...};
return;
}
//...
};
})
.directive('mySecondDirective', function(){
return {
require: 'myFirstDirective',
//link's fourth param is the required controller object.
link: function($scope, $iElement, $iAtrrs, requiredController){
$iElement.on('click', function(){
requiredController.doSomething();
return;
});
return;
}
};
});
如果指令彼此独立,那么只有链接功能就可以了。