我的应用程序具有以下$ resource调用。 从我可以看到,这可以用$ http代替。

    $resource('/api/:et/', { et: $scope.data.entityType })
        .save(data, newSuccess, error)
        .$promise.finally(last);

    $resource('/api/:et/:id', { et: $scope.data.entityType })
        .delete({ id: entityId }, deleteSuccess, error)
        .$promise.finally(last);

    $resource('/api/:et/:id', { et: $scope.data.entityType }, { update: { method: 'PUT' } })
        .update({ id: entityId }, data, editSuccess, error)
        .$promise.finally(last);

我已经查看了$ http文档,但看不到如何将调用添加到xxxSuccess,错误函数以及如何执行。$ promise.finally(last)。

有人可以解释我如何使用$ http复制此功能吗?

===============>>#1 票数:1 已采纳

$http用于通用AJAX 在大多数情况下,这就是您要使用的内容。 使用$http您将手动进行GETPOSTDELETE类型调用,并自行处理它们返回的对象。

$resource包装$http以便在RESTful Web API方案中使用。


句法

$http({
    method : 'GET',
    url : '/someUrl',
    param : { paramKey : paramValue}, // optional
    headers : 'someHeaders' // optional
    }).success(function(data, status, headers, config)
    {   
    // this callback will be called asynchronously
    // when the response is available
    }).error(function(data, status, headers, config)
    {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
    });

$ http文档-https : //docs.angularjs.org/#!/ api/ng / service/ $http


$ http中维护Promise

app.factory('myService', function($http) {
      var myService = {
        async: function() {
          // $http returns a promise, which has a then function, which also returns a promise
          var promise = $http.get('/someUrl').then(function (response) {
            // The then function here is an opportunity to modify the response
            console.log(response);
            // The return value gets picked up by the then in the controller.
            return response.data;
          });
          // Return the promise to the controller
          return promise;
        }
      };
      return myService;
    });

    app.controller('MainCtrl', function( myService,$scope) {
      // Call the async method and then do stuff with what is returned inside our own then function
      myService.async().then(function(d) {
        $scope.data = d;
      });
    });

看看这篇文章Angular Promises ,它肯定会为您带来这样的景象。

===============>>#2 票数:0

$ resource是$ http的进一步抽象版本。 如果您已经在使用$ response,则可能会发现更改逻辑以使用$ http没有用。 说-

https://docs.angularjs.org/api/ng/service/$http

常规用法$ http服务是一个带有单个参数(配置对象)的函数,该参数用于生成HTTP请求,并通过两个$ http特定方法返回成功的诺言:成功和错误。

$http({method: 'GET', url: '/someUrl'}).
    success(function(data, status, headers, config) {
    // this callback will be called asynchronously
    // when the response is available
}).
error(function(data, status, headers, config) {
  // called asynchronously if an error occurs
  // or server returns response with an error status.
});

  ask by translate from so

未解决问题?本站智能推荐: