我有一个转发器:
<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之前以某种方式验证复选框,如果是这样的话?
答案 0 :(得分:0)
如果我理解了这一点,你只想在满足某些条件时禁用该复选框。
<input ng-disabled="isConditionMet()">
$scope.isConditionMet = function() {
// check your condition and return true/false
};