在调用 ng-change 之前验证复选框

Validate checkbox before calling ng-change

本文关键字:验证 复选框 调用 ng-change      更新时间:2023-09-26

我有一个中继器:

 <tr data-ng-repeat="worktime in workTimesFiltered ">

在中继器内部,我有一个输入复选框:

 <input ng-change="updateIncludeOnInvoice(worktime.includeOnInvoice, worktime.timeType)" name='obj1_data' type="checkbox" ng-model="worktime.includeOnInvoice" ng-true-value="true" ng-false-value="false">

当它被选中时,我调用更新包括发票。问题是我不希望它在另一个工作时间.timeType == "0%"时可点击。

我可以在 updateIncludeOnInvoice 中捕获它,并尝试设置工作时间.includeOnInvoice = false,但复选框仍保留在屏幕上。

我找到了一种方法来访问单击以手动将其设置回未选中的 dom 元素,但它似乎很笨拙......

处理

这个问题的正确方法是什么?

在调用ng-change之前以某种方式验证复选框,如果是这样,如何?

如果我理解这一点,您只想在满足某些条件时禁用复选框。

        <input ng-disabled="isConditionMet()">
        $scope.isConditionMet = function() {
           // check your condition and return true/false
        };