data-url with {{ uploadUrl }} 不在范围 url (AngularJS) 中交换
data-url with {{ uploadUrl }} not swapping in scope url (AngularJS)
我正在使用 jquery 文件上传到 post 一个文件到 url。在我的控制器中,我有类似这样的东西来生成 url 我要 post 到。
uploadService.getUploadURL($scope.projectId).then(function (url) {
$scope.uploadUrl = url.uploadUrl;
});
那么在我看来我有这个来填写数据-url
<span id="btn-browse" class="btn btn-success btn-file">Browse<input type="file" name="file" data-url="{{uploadUrl}}" multiple upload /></span>
我 运行 遇到的问题是,当我 post 一个文件时,它最终使用 url、http://localhost/%7B%7BuploadUrl%7D%7D,因为它没有替换 {{uploadUrl }}.
我知道这很可能是非常基础的,我遗漏了一些简单的东西。如果有人可以帮助解决这个问题或指出正确的方向,我将不胜感激!
** 根据下面的上传代码请求 **
来自上传控制器
$scope.upload = function () {
uploadService.upload();
}
来自上传服务
upload: function () {
$.each(_files, function (ix, file) {
file.submit();
});
this.clear();
}
还值得一提的是,jquery 文件上传是在如下指令中实现的:
$(element).fileupload({
dataType: "text",
add: function (e, data) {
uploadService.add(data);
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
uploadService.setProgress(progress);
},
done: function (e, data) {
uploadService.uploadDone();
}
});
即使您已创建指令,但在创建文件上传时 url 尚未加载。
您可以做的是在 uploadUrl
的指令中添加 watch ,如果它的值发生变化,则使用 jquery.
创建文件上传器
$scope.watch('uploadUrl',function(newValue, oldValue ){
if(newValue!==oldValue){
setTimeout(function(){
$(element).fileupload({
dataType: "text",
add: function (e, data) {
uploadService.add(data);
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
uploadService.setProgress(progress);
},
done: function (e, data) {
uploadService.uploadDone();
}
});
});
}
});
我正在使用 jquery 文件上传到 post 一个文件到 url。在我的控制器中,我有类似这样的东西来生成 url 我要 post 到。
uploadService.getUploadURL($scope.projectId).then(function (url) {
$scope.uploadUrl = url.uploadUrl;
});
那么在我看来我有这个来填写数据-url
<span id="btn-browse" class="btn btn-success btn-file">Browse<input type="file" name="file" data-url="{{uploadUrl}}" multiple upload /></span>
我 运行 遇到的问题是,当我 post 一个文件时,它最终使用 url、http://localhost/%7B%7BuploadUrl%7D%7D,因为它没有替换 {{uploadUrl }}.
我知道这很可能是非常基础的,我遗漏了一些简单的东西。如果有人可以帮助解决这个问题或指出正确的方向,我将不胜感激!
** 根据下面的上传代码请求 **
来自上传控制器
$scope.upload = function () {
uploadService.upload();
}
来自上传服务
upload: function () {
$.each(_files, function (ix, file) {
file.submit();
});
this.clear();
}
还值得一提的是,jquery 文件上传是在如下指令中实现的:
$(element).fileupload({
dataType: "text",
add: function (e, data) {
uploadService.add(data);
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
uploadService.setProgress(progress);
},
done: function (e, data) {
uploadService.uploadDone();
}
});
即使您已创建指令,但在创建文件上传时 url 尚未加载。
您可以做的是在 uploadUrl
的指令中添加 watch ,如果它的值发生变化,则使用 jquery.
$scope.watch('uploadUrl',function(newValue, oldValue ){
if(newValue!==oldValue){
setTimeout(function(){
$(element).fileupload({
dataType: "text",
add: function (e, data) {
uploadService.add(data);
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
uploadService.setProgress(progress);
},
done: function (e, data) {
uploadService.uploadDone();
}
});
});
}
});