AngularJS スコープ内の配列から項目を削除するにはどうすればいいですか? 質問する

AngularJS スコープ内の配列から項目を削除するにはどうすればいいですか? 質問する

シンプルな ToDo リストですが、リスト ページには各項目の削除ボタンがあります。

ここに画像の説明を入力してください

関連するテンプレート HTML:

<tr ng-repeat="person in persons">
  <td>{{person.name}} - # {{person.id}}</td>
  <td>{{person.description}}</td>
  <td nowrap=nowrap>
    <a href="#!/edit"><i class="icon-edit"></i></a>
    <button ng-click="delete(person)"><i class="icon-minus-sign"></i></button>
  </td>
</tr>

関連するコントローラーメソッド:

$scope.delete = function (person) {
  API.DeletePerson({ id: person.id }, function (success) {
    // I need some code here to pull the person from my scope.
  });
};

試してみまし$scope.persons.pull(person)$scope.persons.remove(person)

データベースは正常に削除されましたが、このアイテムをスコープから取得することはできません。また、クライアントがすでに持っているデータに対してサーバーへのメソッド呼び出しを行いたくありません。スコープからこの 1 人の人物を削除するだけです。

何か案は?

ベストアンサー1

person配列内ののインデックスを見つけてpersons、配列のsplice方法:

$scope.persons.splice( $scope.persons.indexOf(person), 1 );

おすすめ記事