【发布时间】:2017-08-05 16:00:30
【问题描述】:
我是 Angular 的新手。我想创建一个自定义验证来检查文件大小和扩展名。我使用 FormBuilder 进行验证,使用 FileReader API 获取输入元素字段数据的文件名和大小。
问题:我们能够触发更改事件的自定义验证,但无法获取输入类型字段的值。
请建议我们如何在 Angular 2 中实现文件扩展名和大小的自定义验证。
HTML:
<input type="file" [formControl] = "formName.controls['thumbnailImg']" (change)="changeThumbFile($event)">
组件:
//custom validation
function validateExt(c: FormControl) {
let extension = ['png', 'jpeg', 'gif'];
return extension.indexOf(c.value)? null : { validateExt: { valid: false } }
}
this.form = this.formBuilder.group({
'thumbnailImg': ['', validateExt],
});
changeThumbFile($event){
var file: File = $event.target.files[0];
var fReader: FileReader = new FileReader();
var imgName = file.name;
this.thumbnailName = imgName;
this.formGp.controls['thumbnailImg'].updateValueAndValidity();
}
【问题讨论】:
标签: angular angular2-forms angular2-directives