如何 return 使用 ngresource post 的承诺

How to return a promise with ngresource post

一直在尝试弄清楚如何 return 与 ngresource post 的承诺。我可以用 $http 做到这一点,但无法弄清楚。我收到 .then is not defined 错误。

控制器

  $scope.addLocation = function (model) {
    var model = $scope.model;
    var promise = DocumentLocation.save(model);

    promise.then(function success(model) {
        console.log(model);
        $route.reload();
        $rootScope.close();
        notificationFactory.success();
    },
    function error(error) {
        console.error(error);
        notificationFactory.error();
    }
    )
};

工厂

app.factory('DocumentLocation', function ($resource) {
return $resource('/api/apiDocumentLocation/:id', { id: '@_id' }, {
    get: {
        method: 'GET', isArray: false // this method issues a PUT request
    }
}, {
    stripTrailingSlashes: false
  });
 });

资源实例有一个 $promise 属性,它们本身不是承诺。只需在 then 调用前加上 $promise.

var promise = DocumentLocation.save(model);

  promise.$promise.then(function success(model) {
  ....

我认为你应该调用 .$save() 而不是 .save()

$scope.addLocation = function (model) {
    var model = $scope.model;
    var promise = DocumentLocation.$save(model);

    promise.then(function success(model) {
        $route.reload();
        $rootScope.close();
        notificationFactory.success();
    },
    function error(error) {
        console.error(error);
        notificationFactory.error();
    }
    )
};

参考This Link了解更多详情。

希望对您有所帮助。谢谢