Angular - ng-change复选框不会首次触发

时间:2016-11-18 16:28:57

标签: javascript angularjs angular-material

每当用户更改复选框的状态时,我想触发 ng-change 。这是我的代码:

                    <div ng-class=" food.status == 1 ? 'text-success' : 'text-danger'" class="pull-left m-t-sm ">
                        <i class="fa fa-circle"></i>
                        <label class="md-switch">
                            --{{ food.status }}
                            **{{ food.enableFood }}
                            <input type="checkbox" ng-checked="food.enableFood"  ng-model="food.status" ng-change="changeFoodStatus(food.status , food.id)">
                            <i class="blue"></i>
                        </label>
                    </div>

这是我的角色功能:

$scope.changeFoodStatus = function (status , id) {
    console.log(status,id);
    var foodStatus = 1 ;
    if(!status) {
        foodStatus = 2;
    }
    console.log(foodStatus , id);
    var foodData = {
        foodStatus  : foodStatus,
        foodId      : id
    };



    Gateway.put( foodData , '/food/changeFoodStatus',function (response) {
        console.log(response);
    });
}

这是我的初始输出:

enter image description here

它在第一次之后就像一个魅力,实际上,当 food.enableFood 为真时,它不会在第一时间起作用。 ng-change无法解雇。

如何解决?

1 个答案:

答案 0 :(得分:-1)

我已将html更改为:

                    <div ng-class=" food.status == 1 ? 'text-success' : 'text-danger'" class="pull-left m-t-sm ">
                        <i class="fa fa-circle"></i>
                        <label class="md-switch">
                            <input type="checkbox" ng-true-value="1" ng-false-value="2" ng-model="food.status" ng-change="changeFoodStatus(food.status , food.id)">
                            <i class="blue"></i>
                        </label>
                    </div>

P.S。谢谢@holtc。

相关问题