Angularjs复选框检查ng-change no action

时间:2017-06-30 02:58:31

标签: angularjs

HTML

<input type="checkbox" ng-model="activeStatus" 
       ng-checked="outlet2Datas.INT_EXTEND_1 == 1"
       ng-change="setOutletStatus(activeStatus)"
       ng-true-value="1" ng-false-value="0" />

控制器

    $scope.setOutletStatus = function (activeStatus) {
        console.log(activeStatus);
    }

我是angularjs的新手,我需要一些关于复选框更改的帮助。

这是HTML复选框输入。当值为1时,我从API获取值以选中复选框。当复选框值从1开始表示复选框已选中时,我单击复选框,控制台没有任何结果。然后我再次单击复选框,控制台返回值1并再次单击,该值为0.为什么ng-change在复选框被选中时不能执行第一次操作但是当复选框为时它可以执行操作未检查?

1 个答案:

答案 0 :(得分:2)

参考Angular documentation 您不应将ngModelngChecked一起使用。因为这可能会导致意外行为。似乎在您的情况下发生。

您只需将truefalse分配给您传递给ng-model指令的变量即可。或任何其他值,但它应与ng-true-valueng-false-value指令中的声明值之一相同。

此外,您无需将模型变量作为参数传递给ng-change回调。因为您已经可以在$scope

中访问此变量

基本上,我通过工作示例为您准备jsbin。希望这会有所帮助。