グリッドからアイテムを削除するソリューションを探していました。それが私が以前に質問を投稿した理由です。しかし、誰かから解決策を受け取ったとき、そのときは問題は解決したと思いましたが、Filterメソッドを使用していました。
ただし、スプライス機能を使用してGRIDから項目を削除してください。
これが私の古い質問リンクです Angularjs、テーブル内の選択されたチェックボックスにアクションを適用する
スプライス機能を使って実行させたい。
現在私が直面している問題は、インデックス値を関数に渡し、そのインデックス値が選択またはフェッチされた場合にアイテムを削除できるようにすることです。修正方法がわかりません。
誰かが問題を解決し、更新されたコードへのデモリンクを提供するのはいいことです。
これが私がこれまでに試したもののPlunkerリンクです。 私の実行を示すPlunkerリンク
チェックボックスにng-clickを追加して機能させました
JS array.spliceメソッドの定義(from [〜#〜] mdn [〜#〜] ):
array.splice(index、howMany [、element1 [、... [、elementN]]])
したがって、remove
functionは次のように記述します。
$scope.remove = function(index){
$scope.students.splice(index, 1);
};
編集:
remove
関数を指すng-clickで「x」ボタンをクリックして、アイテムを削除したいと考えました。
チェックボックスをクリックしてアイテムを削除するには、チェックボックスngModelを生徒のプロパティに設定し、このプロパティがtrueに設定されている生徒を削除する$ watcherを生徒に設定する必要があります。
<tr class="color2" ng-repeat="student in students | filter:search | filter:new_search">
<td>{{student.Rollno}} <input type="checkbox" ng-model="student.checked"> </td>
<td>{{student.Name}}</td>
<td>{{student.Uni}} <button ng-click="remove($index)">x </button></td>
</tr>
$scope.$watch('students', function(students){
if(!students){
return;
}
$scope.students = students.filter(function(student){
return !student.checked;
});
}, true);