我在Ionic应用程序中使用 cordova-plugin-camera 插件。我设法使相机拍照并在出现以下错误后显示:
No value accessor for form control with name 'photo'
我想我可能不完全了解FormBuilder的工作方式。这是我得到的:
register.html
<img *ngIf="register_form.controls.photo.value != ''" formControlName="photo" [src]="domSanitizer.bypassSecurityTrustUrl(register_form.controls.photo.value)" />
register.ts文件
ionViewWillLoad() {
this.register_form = this.formBuilder.group({
...
photo: new FormControl('', Validators.required)
});
}
...
onTakePicture(){
...
this.camera.getPicture(options).then((imageData) => {
const image: FormControl = (<any>this.register_form).controls.photo;
image.setValue('data:image/jpeg;base64,' + imageData);
}, (err) => {
});
}
怎么了?
答案 0 :(得分:1)
formControlName
仅可用于实现directives
的控件或ControlValueAccessor
。由于您使用的是未实现ControlValueAccessor
的img,因此无法在此处使用。
有关更多信息,请访问-https://angular.io/api/forms/ControlValueAccessor