从控制器到指令的角度移动范围变量

时间:2015-03-25 11:24:57

标签: angularjs angularjs-directive angularjs-scope

我已经创建了这样的指令

  .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个控制器中重复执行此代码?

1 个答案:

答案 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。