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

时间:2015-01-29 18:03:50

标签: javascript angularjs

我有一个转发器:

 <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">

当它被检查时,我调用updateIncludeOnInvoice。问题是如果另一个worktime.timeType ==“0%”,我不希望它是可点击的。

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

我找到了一种方法来访问被点击的dom元素,手动将其设置为未选中状态,但它看起来很糟糕....

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

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

1 个答案:

答案 0 :(得分:0)

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

        <input ng-disabled="isConditionMet()">

        $scope.isConditionMet = function() {
           // check your condition and return true/false
        };