15

私は Material Angular オートコンプリートを使用しようとしていましたが、選択時に表示される出力として明らかに使用できる displayWith 関数に出会いました。次のような表示関数内でカスタム関数を呼び出したいと思いました

displayFn(id) {
 return this.getValue(id)
}
getValue(id) {
 /**return some string
}

オートコンプリートの場合

<mat-autocomplete #autoOutlet="matAutocomplete" [displayWith]="displayFn">
  <mat-option *ngFor="let option of outletFilterOptions | async [value]="option.outletId">
   {{ option.outletName }}
  </mat-option>
</mat-autocomplete>

ご覧のとおりid、オブジェクト全体ではなく をモデルとして使用しています。

表示関数が this.getValue が未定義であるというエラーを返したとき、スタック オーバーフローで解決策を検索したところ、[displayWith]="displayFn.bind(this)".

しかし、残念ながら、それは私にとってもうまくいきません。Angular マテリアル 5.1.0を使用しています。

足りないものはありますか?

4

5 に答える 5

28
displayFn = value => {
  // now you have access to 'this' 
  this.someMethod();
  return 'formatted display';
}
于 2019-04-23T18:41:50.447 に答える