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 = [];
});
.