我有这个简单的服务
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera2" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
只是将图像上传到服务器,现在在控制器中我调用服务和功能&#39; uploadFileToUrl&#39;。
angular.module('tadeluApp')
.service('fileUpload', ['$http', function ($http) {
this.uploadFileToUrl = function(file, uploadUrl){
var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
})
.success(function(data){
return data.url;
})
.error(function(){
});
}
}]);
问题是,我需要在我的控制器中收到这篇文章的回复,我在我的控制器中调用服务函数后尝试使用.then函数,但它没有用。一些帮助?谢谢!
答案 0 :(得分:0)
您需要返回正在生成的Promise并返回$http
,以便继续Promise链。调用uploadFileToUrl()
时,提供的代码实际上不会返回Promise。
this.uploadFileToUrl = function(file, uploadUrl){
var fd = new FormData();
fd.append('file', file);
return $http.post(uploadUrl, fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
})
.then(function(data) {
return data.url;
})
.catch(function(err) {
// Handle error
});
}