Ng zorro antd 为什么多次调用带有选项multiple的nzBeforeUpload

Ng zorro antd 为什么多次调用带有选项multiple的nzBeforeUpload,ng-zorro-antd,Ng Zorro Antd,我使用Angular 10和ng zorro,我使用nz upload组件,我有一个问题: 为什么beforeUpload被称为等于上传的文件?如果我们有一个nzFileUpload[]参数,它就像一个不需要的重复 My.html代码: {{{}:FileUpload:fileuploadmessage'| abpLocalization} {{'::FileUpload:FileUploadHint'|反本地化}} {{'::FileUpload:FilesFieldRequire

我使用Angular 10和ng zorro,我使用nz upload组件,我有一个问题:

为什么beforeUpload被称为等于上传的文件?如果我们有一个nzFileUpload[]参数,它就像一个不需要的重复

My.html代码:


{{{}:FileUpload:fileuploadmessage'| abpLocalization}

{{'::FileUpload:FileUploadHint'|反本地化}}

{{'::FileUpload:FilesFieldRequired'| abpLocalization}
和my.ts(上传前):

beforeUpload=(单文件:文件,文件列表:文件[]):布尔=>{
//if(this.form.controls.files作为FormArray)
const fileNames=this.form.controls.fileNames.value为[];
if(fileNames.length==this.fileMaxQuantity){
this.snackBarService.warning(this.localizationService.instant('::FileUpload:NumberFilesExceedsAllowed'),true);
返回false;
}否则{
for(设i=0;i{
if(this.form.controls.fileNames.value.length==this.fileMaxQuantity){
this.snackBarService.warning(this.localizationService.instant('::FileUpload:NumberFilesExceedsAllowed');
打破
//返回false;
}否则{
const tempStackSize=this.actualFileStackSize+file.size;
if(file.size>this.fileMaxSize | | tempStackSize>this.fileMaxSize){
this.snackBarService.warning(this.localizationService.instant(“::FileUpload:FileTooHeavy”),true);
返回false;
}else如果(!this.fileList.some(p=>p.name==file.name)){
const ext=this.extensionPipe.transform(file.name);
让控制:FormControl;
(this.form.controls.files as FormArray).push(new-FormControl(file.name));
(!this.regexWithExt.test(file.name))?
this.fileListRequired.push(true)://debe cambiar文件名
this.fileListRequired.push(false);
控件=新窗体控件(file.name.replace(ext.),
[Validators.pattern(this.regex),
需要验证器,
Validators.maxLength(this.fileNameMaxLength-ext.length),
这个.fileNameValidator());
控件。markAllAsTouched();
(this.form.controls.fileNames作为FormArray).push(控件);
//fileNames.push(file.name);
this.fileList.push(文件);
this.actualFileStackSize=tempStackSize;
}
}
}
//fileList.forEach((文件)=>{
// });
}
返回false;
}

从上面可以看出,问题是此函数在上传之前调用的
等于文件的列表大小。

请显示一些代码来检查您的问题。如果您的
@xDrago I更新了说明,那将很高兴,谢谢!如果您看到控制台日志,请写“up”对于上传的每个文件:我测试了它,它似乎可以按照他们的要求工作。每个文件分别调用该方法。在我的项目中也是如此。主要问题是,如果验证不通过,Toast会出现多次。你认为我可以在github中打开一个问题,错误地取消订阅吗?