gpt4 book ai didi

javascript - 无法在 'FileList' 上设置索引属性 : Index property setter is not supported. v

转载 作者:搜寻专家 更新时间:2023-11-01 04:35:07 25 4
gpt4 key购买 nike

angular.module('myApp')
.directive('fileModel', ['$parse', 'uploadService','messageService','CONF', function ($parse, uploadService,messageService,CONF) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var model = $parse(attrs.fileModel);
var modelSetter = model.assign;
element.bind('change', function () {

var file = element[0].files[0];

var fd = new FormData();
fd.append('file', file);
console.log(fd)

self.isDisabled = true;


ParkingService.uploadImage(fd).then(
function (response) {
response = JSON.parse(response);
element[0].files[1] = response;
console.log(response)
if (response.message !== 'ERROR') {
// self.image = response.result;
messageService.toasterMessage(CONF.TOASTER_TOP_RIGHT,CONF.TOASTER_SUCCESS,"Success Upload File");
}
else {
messageService.toasterMessage(CONF.TOASTER_TOP_RIGHT,CONF.TOASTER_ERROR,response.result);

}
}
);

scope.$apply(function () {
modelSetter(scope, element[0].files);
});
});
}
};
}]);

如何在此变量中设置响应?

element[0].files[1] = response;

它适用于 safari 或旧版 chrome。但不支持新的 chrome..

最佳答案

Chrome 和 Firefox 现在都不允许在 NodeList 和 FileList 上设置新索引。我怀疑这与最近的更改有关,这些更改使这些“类数组”结构在总体上与 JavaScript 更兼容,并且是浏览器前进的总体方向。

在非严格模式下运行会恢复行为,但在转译的 JavaScript 环境中是不可行的 - 或者可能是不可取的。

最好的选择是使用 const files = Array.from(element[0].files) 或只是 const files = [...element[ 0].files](取决于您支持的浏览器和您使用的转译)。

关于javascript - 无法在 'FileList' 上设置索引属性 : Index property setter is not supported. v,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46544189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com