作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Angular 的新手,我对来自官方网站的文档有点困惑...
我有 Controller ,我有调用服务方法:
uploaderService.addImage(files);
和这样的服务:
.service('uploaderService', ['$http', 'settings', function ($http, settings) {
var url = undefined;
var addImage = function(files){
var fd = new FormData();
fd.append("file", files[0]);
$http.post(settings.apiBaseUri + "/files", fd,
{
withCredentials: true,
headers: {'Content-Type': undefined },
transformRequest: angular.identity
})
.success(function (data, status, headers, config) {
url = "temp.jpg";
})
.error(function (err, status) {
console.log('operation failed, status: ' + status);
});
};
var deleteImage = function(){
};
return {
addImage: addImage,
deleteImage: deleteImage
};
我怎么能等到发布数据请求完成,然后传入 url 变量位置?我尝试了某某,但有些事情会变坏,需要帮助)
最佳答案
注入(inject) Angular 延迟:
.service('uploaderService', ['$http', '$q', 'settings', function ($http, $q, settings) {
然后在你的函数中使用它:
var addImage = function(files){
var deferred = $q.defer();
var fd = new FormData();
fd.append("file", files[0]);
$http.post(settings.apiBaseUri + "/files", fd,
{
withCredentials: true,
headers: {'Content-Type': undefined },
transformRequest: angular.identity
})
.success(function (data, status, headers, config) {
url = "temp.jpg";
deferred.resolve(data);
})
.error(function (err, status) {
console.log('operation failed, status: ' + status);
deferred.reject({msg: err});
});
return deferred.promise;
};
然后在你的 Controller 中:
uploaderService.addImage(files)
.then(function(data){
// success
var url = data.url; // assuming the returned data of the ajax call contains an url variable
}, function(error){
// error
}).finally(function(){
// always
});
关于javascript - 带有 promise 的 Angular 异步上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27704385/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!