1

この内容のテーブルがあります:

 <tbody>
     <tr ng-repeat="result in ctrl.result track by $index">
       <td ng-bind="$index+1"></td>
       <td ng-bind="::result.title"></td>
       <td> <button type="button" class="btn" ng-click='ctrl.deleteItem(result)'>Delete</button></td>
     </tr>
 </tbody>  

そして、私のコントローラーには次のものがあります。

 vm.deleteItem = function (result) {
        myService.deleteItem(result.id)
           .then(function (response) {
                vm.result.splice(result, 1);
            });
    };

ご覧のとおりvm.result、アイテムが正常に削除された場合は変更されています。これで、項目が db で削除されたので、応答があり、項目も から削除されましたvm.result。しかし、リストはブラウザで更新されていません。
ご覧のとおり、 ではcontroller asなくアプローチ を使用してい$scopeます。

4

2 に答える 2

1

この方法でアイテムを削除してみてください:

vm.result.splice(vm.result.indexOf(result), 1);

最初のSpliceパラメータは、要素自体ではなく、要素のインデックスである必要があります。

于 2016-06-08T05:47:51.947 に答える