ng2-auto-complete ngModel不会更改值

时间:2017-09-11 06:51:49

标签: angular angular2-template angular2-forms

我正在使用ng2-auto-complete模块。我有一个验证表单,当用户从查找数据中选择一个值(自动完成)时,我想更改ngModel值。

我不想通过valueChangedEvent更改值,因为我不止一次使用此模块。我想用自动完成值绑定我的ngModel。这怎么可能?

这不起作用:

<div ng2-auto-complete 
  [source]="getValue('country')"
  placeholder="enter text">
  <input [(ngModel)]="person.country" />
</div>

如果我选择一个值,则person.country不会改变。

提前谢谢!

2 个答案:

答案 0 :(得分:2)

您可以尝试在输入事件上使用函数,如下所示:

<input [(ngModel)]="person.country" #myInput (input)="changeModel(myInput.value)"/>

// TS
changeModel(value: string) { this.person.country = value; }

或者您可以使用OnChange实现

export class MyClass implements OnChanges {
    // ...
    ngOnChanges(changes: SimpleChanges) { this.person.country = changes.allResults.currentValue; }
}

答案 1 :(得分:0)

像这样更改你的代码

<div 
  placeholder="enter text">
  <input [(ngModel)]="person.country" ng2-auto-complete 
  [source]="getValue('country')" />
</div>

ng2-auto-complete标签和来源应与输入字段一起出现。