2016-11-18 79 views
-1

每当用户更改复选框的状态时,我想触发ng-change。这里是我的代码:Angular-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不启动。

如何解决?

+0

你正在初始化food.enableFood?另外,如果您将ng-change更改为ng-click,会发生什么情况?该功能是否启动? – Vinny

+0

是的,我初始化food.enableFood,我已经将它改为ng-click,但它的行为是错误的。 – AFN

回答

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

附:谢谢@holtc。

相关问题