表单使用google places api来获取地址,但点击地址(或使用键盘选择它)不会触发表单的重新验证?
https://plnkr.co/edit/LgEn9t0X2h6BTHGwyJOW?p=preview
我用
更新值this.registrationForm.patchValue({ adress: adress.formatted_address});
并尝试使用方法
手动触发验证this.registrationForm.markAsDirty(true);
和
this.registrationForm.updateValueAndValidity();
但无法让它发挥作用。
答案 0 :(得分:3)
当place_changed
事件在角度区域外被触发时,我建议我们应该调用zone.run()
constructor(private zone: NgZone) {}
...
google.maps.event.addListener(this.autocomplete, 'place_changed', () => {
const place = this.autocomplete.getPlace();
this.zone.run(() => this.invokeEvent(place));
<强> Forked Plunker 强>
另见