ng-disabled具有更改时触发的功能

时间:2016-04-26 10:35:06

标签: javascript angularjs

我有一个提交验证按钮,需要在正确输入所有字段时启用。由于验证过于复杂,无法通过使用formName来解决。仅$ invalid,我需要编写一个函数来满足验证。我希望在内部的每个模型更改中触发shouldEnable函数。但事实并非如此。 Os还有其他选择吗?

初​​始

<button ng-disabled="formName.$invalid">Submit</button>

预期

<button ng-disabled="shouldEnable()">Submit</button>

$scope.shouldEnable = function() {
    $scope.isEnable = true;
    angular.forEach($scope.form.input2, function(val) {
        if($scope.form.input2.inputA && $scope.form.input2.inputB) {
            isEnable = false;
        }
    })
}

2 个答案:

答案 0 :(得分:4)

你的函数需要返回布尔值:

$scope.shouldEnable = function() {
    var isEnable = true;
    // make necessary checks
    return isEnable;
}

答案 1 :(得分:0)

如果您使用的是Angular的数据绑定,您应该使用以下内容:

<button ng-disabled="shouldEnable">Submit</button>

// yourObject is the object you've map in the form
$scope.$watch('yourObject', function(newObject) {
   $scope.shouldEnable = isValid(newObject);
});