【发布时间】:2017-06-22 04:44:08
【问题描述】:
我在我的 angularJS 应用程序中使用 ngResource 创建了一个服务,以将一些数据发送到我的 rest api。
在我发送请求后,我想使用一个 Promise 在我的控制器中执行一些任务。
这是我的服务:
angular.module("MyService", ['ngResource'])
.factory("myService", function ($rootScope, $http, $resource) {
var apiData = $resource(
"/api", {},
{
"postQuestion": { method: "POST", url: "/api/:userid"}
});
return {
postQuestion: function(question, user_id) {
apiData.postQuestion({ userid: user_id}, question, function(data) {
console.log("Sucsess !");
}, function(error) {
console.log("Error " + error.status + " when sending request : " + error.data);
});
}
}
});
这是我在控制器中使用它的方式:
app.controller("MyCtrl", function ($scope, $filter, $http, $sce, myService, ngDialog, $rootScope, $location) {
$scope.postQuestion = function(newQuestion)
{
myService.postQuestion(newQuestion, 1).$promise.then(function(){
$scope.showNewQuestion = false;
$location.path("/");
});
}
})
但是在运行我的应用程序时,我的控制台中出现了这个错误:
TypeError:无法读取未定义的属性“$promise” 在 Scope.$scope.postQuestion ...
不知道为什么,请帮忙
【问题讨论】:
-
您是否尝试过从服务方法实际返回 apiData.postQuestion 的结果?
标签: angularjs rest promise factory ngresource