0

标题可能有点误导,但我想不出更好的描述。

我写了一个指令,其中包括ng-repeat

app.directive('appDirective',function($purr){
    var template = '' +
        '<div ng-repeat="elements in queue">' +            
        '</div>';

    return{
        template: template
    }
});

如果我是正确的,我可以在两种提供queue指令的方式之间进行选择

1:通过链接功能

    return{
        restrict: 'A',
        template: template,
        link: function(scope){
                scope.queue =[];
        }
    }

2:通过控制器

    return{
        restrict: 'A',
        template: template,
        controller: directiveCtrl
    }

app.controller('directiveCtrl',function($scope){
    $scope.queue = [];
});

我应该选择哪种方式,为什么?

4

1 回答 1

1

指令的链接功能和控制器功能之间几乎没有区别。通常,您可以将方法、$watches 等放入其中。控制器将首先运行,这有时很重要。您可能希望将作用域操作函数放在控制器中,只是为了与框架的其余部分保持一致。

当控制器和链接函数使用两个嵌套指令运行时,这个小提琴会记录下来。

另见定义指令时“控制器”、“链接”和“编译”函数之间的区别

.
于 2013-07-26T21:15:45.217 回答