我已经创建了这样的指令
.directive('optionLabel', function() {
'use strict';
return {
replace: true,
restrict: 'AE',
template: '<div class="error-msg col-xs-12 intelligent-group col-centered"><h1 translate>{{ optionLabel }}</h1></div>'
};
})
现在,Scope optionLabel设置在每个使用此指令的控制器中。
$scope.optionLabel = labelService.getOptionLabel(search.searchType);
我怎样才能直接在指令中设置它,而不是在5个控制器中重复执行此代码?
答案 0 :(得分:1)
您可以使用您有权访问范围的链接:
.directive('optionLabel', function() {
'use strict';
return {
replace: true,
restrict: 'AE',
template: '<div class="error-msg col-xs-12 intelligent-group col-centered"><h1 translate>{{ optionLabel }}</h1></div>',
link: function(scope, element, attrs) {
scope.optionLabel = labelService.getOptionLabel(search.searchType);
};
})
不要忘记在你的指令中注入labelService。