如何在控制器的指令中调用函数?

时间:2015-06-09 01:18:19

标签: angularjs angularjs-directive

我有一个函数,它位于一个指令中,我希望能够从控制器中调用它。我怎样才能做到这一点?

这是我的指示:

angular.module('almApp')
      .directive('contactForm', function () {
        return {
          restrict: 'A',
          link: function(scope, elm, attrs) {
            scope.sending = function () {
              $scope.submitButtonDisabled = true;
              $scope.status.message = "Sending your message...";
              $scope.status.styleClass = "info";
            }
          }
        };
      })

我的视图元素如下:

<div class="m-t-15 alert alert-{{status.styleClass}}" role="alert" contactForm>{{ status.message }}</div>

如何从控制器调用sending()?

1 个答案:

答案 0 :(得分:0)

在您描述的场景中,sending()函数是要在控制器中定义的候选者。如果需要,可以从指令调用控制器函数,但调用嵌套指令中定义的函数是没有意义的。嵌套范围不应该对外部作用域可见,因为您可以在一个控制器中拥有此指令的多个实例,并且每个实例都可以实际定义此函数的不同版本...