如何 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了解更多详情。
希望对您有所帮助。谢谢
一直在尝试弄清楚如何 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了解更多详情。
希望对您有所帮助。谢谢