复选框和ng-change。如果条件存在,需要取消选中

时间:2016-06-07 10:10:15

标签: angularjs

我需要能够以编程方式设置一个复选框,以便在事件发生时取消选中(该事件实际上是一个隐藏的模态)。我需要保持当前ng-change函数具有相同的参数。

我有一个复选框元素:

<input type="checkbox" ng-change="change(ordered, $index, {{part.id}}, {{part.vehicle_id}}, '{{part.ordered_from}}')" ng-true-value="1" ng-false-value="0" ng-model="ordered" name="part-ordered"  />

我的JS:

$scope.change = function(value,  part_index, id, vehicle_id, ordered_from_val) {

    if (modal_hidden_event) {

        // UNCHECK CODE.             

    }

}

我不太确定要搜索的内容或文档的哪些区域会对我有所帮助。

1 个答案:

答案 0 :(得分:1)

我不确定modal_hidden_​​event来自哪里,我假设它只是一个占位符。我还在HTML中清理了您的更改功能,因为它不需要进行插值,因为值不存在:

使用ng-checked

<强> HTML

<input type="checkbox"
    ng-change="change(ordered, $index, part.id, part.vehicle_id, part.ordered_from)"
    ng-true-value="1"
    ng-false-value="0"
    ng-model="ordered"
    ng-checked="checkedStatus"
    name="part-ordered"  />

<强> JS

$scope.checkedStatus = true;
$scope.change = function(value,  part_index, id, vehicle_id, ordered_from_val) {

    if (modal_hidden_event) {
        $scope.checkedStatus = false;
    }

}

我还建议只将部分传递给函数,然后你可以抓住每个属性:

<强> HTML

"change(ordered, $index, part)"

$ scope.change = function(value,part_index,part){

<强> JS

$scope.change = function(value, part_index, part) {

    var part_id = part.id,
        vehicle_id = part.vehicle_id,
        ordered_from_val = part.ordered_from;


    if (modal_hidden_event) {
        $scope.checkedStatus = false;
    }

}