1

.push() を使用して、REST API を投稿するための「リスト」入力チェック配列を作成しました。しかし、それは正しくないようです。

チェックを外すと、配列内のアイテムは自動的に削除されません。誰もがより良い解決策を持っています、plsは私を助けてください! Tks

http://plnkr.co/edit/Y0YggxvVN1epIMWAdtiU?p=preview

4

1 に答える 1

1

あなたはこれを行うことができます...それは動作します。これが最善の解決策とは言えませんが、

 $scope.$watch('lists', function(lists){
    $scope.count = 0;
    angular.forEach(lists, function(list){
      if(list.checked){
        $scope.count += 1;
        if (inputsList.indexOf(list.id) == -1) {
            inputsList.push(list.id);
        };
      } else {
          inputsList.pop(list.id);
      }
    })
  }, true);

同じロジックですが、少し変更しました

index.html (ng-click を追加)

<input type="checkbox" name="list_id[]" ng-model="list.checked" value="{{list.id}}" ng-click='updateItem(list)' />

app.js ($scope.$watch などを削除)

$scope.currentSelectedItem = [];      
$scope.updateItem = function(item) {
    if(item.checked) {
        $scope.currentSelectedItem.push(item);
    } else {
        $scope.currentSelectedItem.pop(item);
    }   
}
于 2013-06-15T04:30:39.820 に答える