【问题标题】:Problems with two way binding in Angular 6Angular 6中两种方式绑定的问题
【发布时间】:2019-02-27 13:59:18
【问题描述】:

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

<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);
});

这就是所谓的

【问题讨论】:

  • 应该可以正常工作。样品在这里stackblitz.com/edit/angular-5pgjkj。您可以更新 stackblitz 向我们展示您的问题。
  • 那里似乎工作正常。我的代码中的某些内容会阻止绑定吗?
  • 因为您没有看到编译器警告,所以我也没有看到问题。如果您对this.aboutYouComp 有有效参考,那么更改也应该反映在视图上。

标签: angular data-binding angular6


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多