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 })
    };
4

1 回答 1

1

对于那些对解决方案感兴趣的人:在控制器中,只需更新 $scope 的值,如下所示:

   $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;
          }
        }
    };
于 2016-07-22T11:57:09.933 回答