我正在尝试通过service
发布我的表单数据,但如果我想在控制台中获取响应,我发现undefined
你能告诉我我犯了什么错误,
我是棱角分明的新人,所以很难发现问题。这是我的代码
commonApp.service('CommonServices',function($http){
this.saveData=function(DataToInsert){
$http({
method :"POST",
data :DataToInsert,
url : 'myurl',
//headers :{'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(programApiResponse){
console.log(programApiResponse);
return programApiResponse;
}).error(function(programApiResponse){
return programApiResponse;
});
};
});
和我的控制器
$scope.makeprogram=function(){
//console.log($scope.programdata);
$scope.ProgInsResponse=CommonServices.saveData($scope.programdata);
console.log('1'+$scope.ProgInsResponse);
}
答案 0 :(得分:0)
你没有在
返回承诺this.saveData = function(DataToInsert){
$http({
...
这应该是
this.saveData=function(DataToInsert){
return $http({
...
然后,如果你可以添加自己的处理程序
CommonServices.saveData($scope.programdata)
.then(...)
最后但并非最不重要的是,如果你有一个不错的浏览器,你可以只记录对象,不要记录字符串。
CommonServices.saveData($scope.programdata)
.then(function(){
console.log(arguments);
});
答案 1 :(得分:0)
这是异步性问题。试试这个
$scope.makeprogram=function(){
CommonServices.saveData($scope.programdata).then(function() {
console.log('1'+$scope.ProgInsResponse);
});
}
由于你要回复承诺,你需要在回应之前等待。