输入值在 Angular 中没有变化

Jur*_*Jur 5 html javascript ionic-framework angular

我有一个自定义组件,用户可以在其中使用下拉/输入组合搜索值并单击结果或在下拉列表中滚动和搜索并单击该值,这会将输入值设置为单击的下拉值。

假设值为:['foo', 'bar', 'fee']

如果我在下拉列表中单击“foo”,输入值将按预期更改为“foo”。但是,如果我退格到“f”,然后再次单击“foo”,它会将变量设置为“foo”,但不会更新下拉值。

如果我的值是“foo”,我退格并单击“fee”,它会像它应该的那样更新。

我的值没有在输入中更新是什么问题?

搜索选择.html:

<div>
    <input type="text"
        (input)="filterDropdown()"
        [(ngModel)]="filterValue" [value]="selectedItemName"/> <-- no change here
        {{selectedItemName}} <-- does change here (but I don't want it here)
    <div>
        <div *ngFor="let item of filteredItems" (click)="setItem(item)">
            {{item.name}}
        </div>
</div>
Run Code Online (Sandbox Code Playgroud)

搜索选择.ts:

public setItem(item): void {
        this.selectedItemName = item[this.itemName];
}
Run Code Online (Sandbox Code Playgroud)

Sam*_*oon 5

尝试一下,这适用于本机 html 选择标记。HTML:

Use (change)="selectValue($event)" on <select> 
Use directive [(ngModel)]="selectedValue" on <select> 
Run Code Online (Sandbox Code Playgroud)

TS:

selectedValue: any;
selectValue(ev){
   this.selectedValue = ev.target.value;
}
Run Code Online (Sandbox Code Playgroud)