をクリックされたときに、クラスのプロパティを更新することはできません私は、デフォルトではnullに設定されている「curSelectedSite」というプロパティを持っている:私のマークアップで:ボタンは、私のクラスでは
export class MyComponent implements OnInit {
curSelectedSite = null;
displayFn(site): string {
this.curSelectedSite = site;
return site ? site.name : site;
}
addSite(): void {
console.warn(this.curSelectedSite) // outputs "null" and not the chosen autocomplete value as it should
}
}
私はオートコンプリートフィールドを持っていますこれは、ユーザーがサイトのリストからサイトを選択することができます:ユーザーがドロップダウンからオプションを選択したときに
<mat-form-field class="field">
<md-input-container>
<input type="text" matInput [formControl]="myControl" [matAutocomplete]="auto" placeholder="Choose Site" id="choose-site">
</md-input-container>
<mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn">
<mat-option *ngFor="let site of sites" [value]="site">
{{site.name}}
</mat-option>
</mat-autocomplete>
</mat-form-field>
<button mat-raised-button (click)="addSite()">Add Site</button>
displayFn
方法火災を。ご覧のとおり、ユーザが選択したものが発生したときに、curSelectedSite
のプロパティを更新しています。しかし、「Add Site」ボタンをクリックしたときの後にユーザが何かを選択すると、null
が出力され、更新されたものではありません。どうして?
displayFnの内部にサイトを記録するとどうなりますか?あなたがその機能に何かを渡しているようには見えません。 – chrisz
'displayFn(site)'の範囲外で、 'curSelectedSite'の値がnullです –
また、displayFnの目的が' curSelectedSite'を設定するのであれば、何も返さないのですか? – chrisz