AngularJS - 如何将控制器函数转换为指令?

时间:2017-10-27 12:56:34

标签: angularjs controller directive

如何将angularjs控制器功能转换为指令?我想在其他控制器中重用它。我所尝试的没有什么不起作用,我想遵循正确的步骤。

我的代码:

$scope.lockableFormWithCustomValidation = function(functionName, isFormValid) {

  if (isFormValid) {
    $scope.lockForm = true;
    if (angular.isFunction($scope[functionName])) {
      $scope[functionName]().then(function(response) {
        if (response.data.returnValue === 0) {
          return $scope.lockForm = true;
        } else {
          return $scope.lockForm = false;
        }
      });
    }
  }
};

我想使用它:

... <form lockable-form="'createReport', addReportForm.$valid" ... >

而不是:

   <form data-ng-submit="lockableFormWithCustomValidation('createReport', addReportForm.$valid)"

1 个答案:

答案 0 :(得分:1)

更好的解决方案是将其转移到服务中。然后你可以将它用于其他指令。

formvalidationService.js

angularApp.service('formValidationService',function(){
//To do logic here

});