控制器中的数据绑定离子复选框不起作用

时间:2016-02-20 22:44:36

标签: angularjs ionic-framework

我的第一次使用离子和角度。我有一个从控制器填充的复选框列表,当我点击检查视图显示我的更改,但如果我想查看控制器上的这个更改显示我的旧值。我需要添加/减去值

HTML

   <div class="item-text-wrap">
     <ion-list>
         <ion-checkbox ng-repeat="item in listTypeProduct"
         ng-model="item.checked" 
         ng-checked="item.checked"
         ng-change="add(listTypeProduct)" >{{ item.text }}
    </ion-checkbox>

      </ion-list>
    </div>

    <div class="item">
      <pre ng-bind="listTypeProduct | json"></pre> 
    </div>

页面上的打印工作正常!

when I click on check the binding working

这是我的控制器

 app.controller('CotCtrl', function($scope, $ionicSideMenuDelegate,$rootScope) {

$scope.listTypeProduct = [
         { text: "a1",    checked: false , value:4500 },
         { text: "a2",  checked: false , value:2000 },
         { text: "a3", checked: false , value:1200 }
];

$scope.add = function(list){
    console.log(JSON.stringify(list));
}; 

但是当我迭代数组时,在我的控制器上给出了旧的信息。

enter image description here

方法&#34;添加&#34;我想用更新值迭代列表,例如

angular.forEach(list, function(val, key) {
 if( checked && (value) )
   $scope.total += total+val.value;
 });

添加所有选中的值。

1 个答案:

答案 0 :(得分:0)

引用AngularJS文档here

  

请注意,此指令“ngChecked”不应与ngModel一起使用,因为这可能会导致意外行为。

这就是说,只使用ng-model将复选框绑定到控制器中的模型。