5

我正在尝试在用户与之交互时使资源列表保持最新。使用 AngularJS ngResource 我最初使用它的query方法获取列表。然后每个资源都有一个$remove(或$delete)方法,对吗?但是当被触发时,资源不会从返回的列表中删除query

这要求很多,我知道,但我几乎希望它能为我做一切。保存它,我怎么能做到这一点。资源本身是否会发出某种事件?它有我可以删除的属性$watch吗?我怎么知道一个资源是$remove'd 所以我可以把它从列表中拼接出来?

谢谢。

4

2 回答 2

6

您必须使用Array'splice方法将其删除($index是 ng-repeat 的隐式索引)。

$scope.removeItem = function (index) {
    $scope.items[index].$delete();
    $scope.items.splice(index, 1);
}

然后在你的 HTML

<a ng-click="removeItem($index)">remove me</a>
于 2013-05-22T20:16:39.137 回答
2

只需使用成功回调函数:

instance.$action([parameters], [success], [error])

对你来说,我猜这会是这样的:

myResource.$delete([parameters], function () {
    //delete was successful
});
于 2013-05-22T20:24:43.760 回答