0

我现在写了几个指令。他们中的一两个人使用了自己的控制器。我一直在研究一些 angular 自己的指令是如何工作的,以及一些 angular UI 引导指令是如何工作的。

他们有时也使用控制器。在大多数情况下,控制器似乎只是添加了一种包装代码并使其更加模块化的好方法。我敢肯定,关于您的指令何时应该获得自己的控制器,必须有一些更合理的建议。

4

1 回答 1

2

从文档

...读者可能想知道链接和控制器之间有什么区别。基本区别在于控制器可以公开 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;
        }
     };
});

如果指令彼此独立,那么只有链接功能就可以了。

于 2013-11-12T14:42:00.430 回答