2016-07-22 50 views
1

我正在使用Angular Table,它使用ng-repeat显示来自MySQL的记录。 最后一列是复选框列。 问题是,当在页面之间导航(分页)时,复选框的状态是持久的。 如何保持页面之间的状态(如果我选中/取消选中某个项目)?角度复选框不保存页面导航之间的状态

<tr ng-repeat="data in filtered = (list | filter:search | 
filter:{manufacturer:by_manufac} | 
filter:{errorStatus:by_errorStatus} | 
orderBy : predicate :reverse) | 
startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit"> 

<td> 
    <input type="checkbox" name="checkedin" ng-model='checkedin' 
    ng-change='processForm(data)' ng-checked="data.Locked==1"/> 
</td> 
</tr> 

在控制器:

$scope.processForm = function(checkedindata) { 
     $http.post('ajax/setItems.php', { data : checkedindata }) 
    }; 

回答

1

对于那些有兴趣的解决方案:在控制器 ,只需更新$范围的值,例如:

$scope.processForm = function(post_data) { 
     for(i=0; i<$scope.filtered.length; i++) { 
      if($scope.filtered[i]['productID'] == post_data['productID']){ 
       $http.post('ajax/setItems.php', { id : post_data['productID'], operation: !post_data['Locked'] }) 
       $scope.filtered[i]['Locked'] = !$scope.filtered[i]['Locked']; 
       i=$scope.filtered.length; 
      } 
     } 
    }; 
+0

什么的productID这里? –

+0

这是传递给控制器​​的json对象的名称。 然后,您可以在您的PHP或任何其他后端中使用它来提取其值。 – necross