首页 > 解决方案 > Angular 6中两种方式绑定的问题

问题描述

我有一个像这样的输入元素:

<input type="text" google-place-search id='city' placeholder="Type to search" name='city' [(ngModel)]='user.city'>

在某些情况下,我想以编程方式设置此元素的值。所以我使用:

setAddress(addressObj){
    this.user.city = addressObj;
}

但这似乎并没有绑定新值。我可以看到正在调用 setAddress 并传入了正确的参数,但输入元素没有发生任何变化。我在这里错过了什么吗?

这是 Angular 6。

编辑1:

google.maps.event.addListener(autocomplete, 'place_changed', () => {
   this.aboutYouComp.setAddress(autocomplete.getPlace().name);
});

这就是所谓的

标签: angulardata-bindingangular6

解决方案


由于您使用的是双向数据绑定,因此您可以在组件的类中声明用户对象及其属性,并使用 [()] 在模板中访问它。但是,您还说正在调用 setAddress 方法。这在您的代码中发生在哪里。因为它似乎没有在输入元素中被调用?


推荐阅读