【问题标题】:AngularJS ngResource delete eventAngularJS ngResource 删除事件
【发布时间】:2013-05-18 00:53:47
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 你指的代码在哪里?
  • 很遗憾它不能自己处理这个问题。这似乎是一件显而易见的事情。

标签: angularjs angularjs-resource


【解决方案1】:

只需使用成功回调函数即可:

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

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

myResource.$delete([parameters], function () {
    //delete was successful
});

【讨论】:

    【解决方案2】:

    你必须使用Arraysplice方法来移除它($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>
    

    【讨论】:

    • 这在大多数情况下都会起作用,但是当服务器端出现某种错误时会发生什么。您的 UI 将不再反映正确的状态。
    • 那么你可以将它作为回调传递,我认为:)
    猜你喜欢
    • 2016-04-04
    • 1970-01-01
    • 2023-03-03
    • 2015-08-31
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    相关资源
    最近更新 更多