javascript - 如何向 Angular 资源添加回调?

标签 javascript rest angularjs

我有一个显示项目列表的 View :

<li ng-repeat="item in items">{{item.name}}</li> 

与此相关的服务是:

angular.module('itemService', ['ngResource']).
    factory('Item', function($resource){
        return $resource('/api/v1/item/:itemId', {}, {
            query:   {method:'GET',  params:{itemId : ''},          isArray : true},
            get:     {method:'GET',  params:{itemId : ''},          isArray : false},
            save:    {method:'POST', params:{itemId : ''},          isArray : false},
            update:  {method:'PUT',  params:{itemId : '@_id.$oid'}, isArray : false}
        });
    });

最后,当 Controller 初始化时我使用查询来加载项目列表。

function ItemCtrl($scope, Item) {

    $scope.items  = Item.query();
    ....

在同一页面上,我可以创建新项目并调用 save() 将它们保存到服务器。但是当我这样做时,我想更新 View 以显示新项目,而不是使用 query() 重新加载整个列表。由于 View 是正式记录,我认为在成功保存项目后,我应该将其推到项目的末尾。这应该在 save() 完成后完成,因此我想知道如何添加/指定保存函数的回调。

编辑:save() 返回已保存项目的副本(如果成功),以便我可以确保该项目已成功保存在服务器上。

最佳答案

来自the documentaton here:

Item.$save(function(item, putResponseHeaders) {
  //item => saved user object
  //putResponseHeaders => $http header getter
});

关于javascript - 如何向 Angular 资源添加回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16311245/

相关文章:

java - Spring MVC - 如何为我的 resttemplate 使用不同的超时?

javascript - 如何使用 R 从 javascript 饼图中抓取网络数据?

rest - 返回 Grails 中另一个对象的 "belongsTo"对象列表(带有内容)

javascript - 带空格的日期和时间正则表达式

java - Jackson 映射对于作为参数传递的泛型失败

http - angularjs + mongolab $http.put 不更新模型

javascript - 如何使用 AngularJs 比较两个对象 JSON?

javascript - 使用 ng-click 链接 angular js 的事件类?

javascript - 如何动态地将 html 元素添加到页面并在 asp.net 中访问它们?

javascript - 反转简单的 Javascript 用户代理逻辑