Javascript 选择指令范围

Javascript 选择指令范围,javascript,angularjs,architecture,angularjs-directive,Javascript,Angularjs,Architecture,Angularjs Directive,标题可能有点误导,但我想不出更好的描述 我写了一个指令,其中包括一个ng repeat: app.directive('appDirective',function($purr){ var template = '' + '<div ng-repeat="elements in queue">' + '</div>'; return{ template: template }

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

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

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

    return{
        template: template
    }
});
2:通过控制器

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

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

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

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

当控制器和链接函数使用两个嵌套指令运行时记录

另见


这可能没关系。请注意,控制器将在链接功能之前运行。谢谢。这个事实会引起副作用吗?我怀疑。我看过一些例子,人们在链接函数中设置了scope属性,并试图在控制器函数中访问它(我想知道为什么它还不存在)。感谢您的澄清。就个人而言,我认为应用控制器感觉更正确。另一方面,我会认为第二种方法更有效。
    return{
        restrict: 'A',
        template: template,
        controller: directiveCtrl
    }

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