2 回答
TA贡献1829条经验 获得超13个赞
如果您使用反应式表单,则只需调用reset()表单控件即可。
组件.html
<form [formGroup]="form">
<input type="file" multiple formControlName="files" />
<button type="button" (click)="clearFile()">
Delete
</button>
</form>
组件.ts
form: FormGroup;
ngOnInit() {
this.form = new FormGroup({
files: new FormControl('')
});
}
clearFile() {
this.form.get('files').reset();
}
演示: https: //stackblitz.com/edit/angular-huvm38
TA贡献1804条经验 获得超7个赞
您可以使用它ViewChild来访问组件中的输入。首先,您需要添加#someValue到输入中,以便可以在组件中读取它:
<input #myInput type="file" name="pj" id="pj" (change)="onFileChange($event)" multiple>
然后在您的组件中,您需要ViewChild从以下位置导入@angular/core:
import { ViewChild } from '@angular/core';
然后您可以使用ViewChild模板访问输入:
// ng 8 @ViewChild('myInput', {static: false}) myInput: ElementRef;
@ViewChild('myInput') myInput: ElementRef;
现在您可以使用myInput来重置所选文件,因为它是对输入的引用#myInput,例如reset()将在click按钮事件时调用的创建方法:
reset() {
console.log(this.myInput.nativeElement.files);
this.myInput.nativeElement.value = "";
console.log(this.myInput.nativeElement.files);
}
- 2 回答
- 0 关注
- 83 浏览
添加回答
举报