AngularJS:在ng-disabled中使用函数

时间:2017-04-17 10:11:21

标签: javascript html angularjs

我在我的观点中使用ng-disabled这样我有条件

 md-button.md-primary.md-raised flex="20" ng-disabled="form.$invalid || form.$pristine || day == 0 || leaveapplication.reason == null" ng-click="save(starts_on, ends_on, leave_type_id, period1, period2)" Apply

所以我这次会在我的ng-disabled中使用功能:

 md-button.md-primary.md-raised ng-disabled="buttonChecker()" ng-click="save(starts_on, ends_on, leave_type_id)" Apply

现在我如何将我的条件放在form.$validform.$pristine等函数中,其他条件就像day == 0一样容易,但其他条件对我来说很难。

2 个答案:

答案 0 :(得分:2)

只需使用$scope访问该表单,其中表单的名称绑定到$scope.nameOfForm。我不知道定义了dayleaveapplication.reason等其他变量的位置,所以我只是将它们插入空白。您必须编辑此部件才能使其正常工作,但我认为这将向您展示如何实现您的目标。

查看

<div ng-controller="MyCtrl">
  <form name="myForm">
      <input type="text" name="test" ng-model="test">
      <button ng-disabled="buttonChecker();">
        Some Button
      </button>
  </form>
</div>

AngularJS应用程序

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', function ($scope) {
    $scope.buttonChecker = function () {
      return $scope.myForm.$invalid 
                || $scope.myForm.$pristine 
                || $scope.day === 0 
                || $scope.leaveapplication.reason === null;
    };
});

&GT; Demo fiddle

答案 1 :(得分:0)

尝试在您的函数上传递表单。

 md-button.md-primary.md-raised ng-disabled="buttonChecker(formName)" ng-click="save(starts_on, ends_on, leave_type_id)" Apply

并让buttonChecker使用

检查表单
$scope.buttonChecker = function (formName) {
  return formName.$invalid || formName.$pristine;      
};