在使用Uploadcare文件上传小部件时,我注意到Uploadcare脚本不断重新绘制HTML标签.
我不知道是否重新油漆是正确的术语,但这里是正在发生的事情:检查镀铬 devtools的HTML标签被突出显示,当您添加相同的行为/元素上删除属性.它似乎没有结束,它只是在每N ms继续.您可以在他们的主页Uploadcare.com上自行查看,只需打开devtools并查看HTML标签即可.
任何人都知道它为什么这样做?这叫什么?它会给移动用户带来性能问题吗?
我的场景 - 我想从我自己的按钮打开一个上传对话框,并获取上传的文件信息.在Uploadcare JS版本0.12中,我执行了以下操作:
$(".upload-image-button").on("click", function() {
uploadcare.openDialog(null, {
imagesOnly: true
}).uploadDone(function(info) {
setImage(info.cdnUrl);
});
});
Run Code Online (Sandbox Code Playgroud)
在0.16中没有更多uploadDone,它只是返回一个没有任何数据的承诺.我该怎么办?
我在基于angularjs的应用程序中使用uploadcare小部件.我将这个小部件集成为angular指令.
文档说,我应该设置全局变量来改变语言环境:
<script>
UPLOADCARE_LOCALE = 'ru';
</script>
Run Code Online (Sandbox Code Playgroud)
但我对角度不太熟悉.所以,我不知道它是如何动态的.
我会很高兴得到任何帮助.
更新
我尝试将$ rootScope添加到我的uploadcare指令并在那里设置UPLOADCARE_LOCALE变量:
angular.module("project").directive 'projectUploadcare', ($uploadcare, $rootScope) ->
restrict: 'E'
replace: true
template: '''
<span>
<span class="uploadcare-preview"></span>
<input type="hidden">
</span>
'''
link: (scope, element, attrs) ->
$rootScope.UPLOADCARE_LOCALE = 'ru'
... other code ...
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.
我想将第三方api(uploadcare)编译成指令.
api将在async上传后返回数据信息,然后我想对我的控制器中的返回数据做一些事情,但我不得不知道如何将返回数据从指令传递给控制器.以下是我的代码.
在js
link: function (scope, element, attrs) {
//var fileEl = document.getElementById('testing');
var a = function() {
var file = uploadcare.fileFrom('event', {target: fileEl});
file.done(function(fileInfo) {
//scope.$apply(attrs.directUpload)
//HERE IS MY PROBLEM.
//How can I get the fileInfo then pass and run it at attrs.directUpload
}).fail(function(error, fileInfo) {
}).progress(function(uploadInfo) {
//Show progress bar then update to node
console.log(uploadInfo);
});
};
element.bind('change', function() {a()});
}
Run Code Online (Sandbox Code Playgroud)
在HTML中
<input type="file" direct-upload="doSomething()">
Run Code Online (Sandbox Code Playgroud)
在控制器中
$scope.doSomething = function() {alert(fileInfo)};
Run Code Online (Sandbox Code Playgroud) angularjs angularjs-directive angularjs-controller uploadcare