Angularでは、角度マットオプションに対してonSelectionChangeが呼び出されません

ウェール

入力を含むmat-form-fieldと、mat-optionを含むmat-autocompleteがあります。入力には(blur)イベントがあり、mat-optionには(onSelectionChange)イベントがあります。

私が抱えている問題は、アイテムを選択すると、mat-optionのonSelectionChangeイベントの前にブラーが呼び出されることです。ドロップダウンに値が存在しない場合、blurイベントのメソッドは入力を空にします。入力の(blur)イベントを削除すると、(onSelectionChange)が呼び出されます。(ぼかし)イベントの前に呼び出すには、これが必要です。

いくつかの調査の結果、(blur)の関数内で.setTimeOutを使用できることがわかりました。これにより、(onSelectionChange)の関数の後に本体を呼び出すことができますが、この修正により、入力から離れてフォーカスすると、入力を空にするのが遅れます。値が間違っている場合。

これが私が持っているhtmlコードです:

<mat-form-field [style.width.%]="fieldWidthPercentage">
    <input matInput #tagsInput (blur)="checkIfMatch()">
    <mat-autocomplete #auto="matAutocomplete">
      <mat-option *ngFor="let item of filteredAutoCompleteItems | async" 
      (onSelectionChange)="selected(item)" [value]="item">
      {{ item.name }}
    </mat-option>
    </mat-autocomplete>
</mat-form-field>

(ぼかし)イベントの関数は次のとおりです。

checkIfMatch() {
    setTimeout(() => {
    // . . .
    }, 1000);
  }
}
ウェール

私は私の質問の解決策を見つけました:blurの呼び出しのために、イベントの関連するターゲットがmat-optionから来ているかどうかを確認するためのチェックを追加しました。この場合、checkIfMatchのコードは呼び出されません。

checkIfMatch(event) {

    if (event.relatedTarget && event.relatedTarget.id.indexOf('mat-option') > -1) {
      // In case of a direct selection, there is no need to check if it matches.
      event.preventDefault();
      return;
    }
...
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

すべてのセッション値に対して関数が呼び出されているわけではありません

分類Dev

角度のあるマテリアルでマットオプションが選択されたときに呼び出されるngmodelchange

分類Dev

Select2オプションtemplateResultが呼び出されていません

分類Dev

Angular 2、routerOnActivateメソッドがOnActivateを実装するコンポーネントに対して呼び出されることはありません

分類Dev

addOnDestinationChangedListenerはグローバルアクションに対して呼び出されません

分類Dev

プロッド中に呼び出されたアクターの内部にシンクしますが、テスト中には呼び出されません

分類Dev

FlutteronChangedはウィジェットに対して呼び出されません

分類Dev

QNetworkAccessManagerの終了したシグナルに対してスロットが呼び出されません

分類Dev

クラスのインスタンスでiter()を呼び出しても、現在の値の「スナップショット」は作成されませんか?

分類Dev

Angular2アプリケーションでサービスが呼び出されていません

分類Dev

OnStart()が呼び出されていません。サービスプロセスはサービスコントローラに接続できませんでした。手動で、および他のマシンで動作します

分類Dev

アクションは呼び出されますが、ヒットしません

分類Dev

アプリケーションonCreateがテストで呼び出されていません

分類Dev

java.lang.IllegalStateException:現在のリクエストに対してgetReader()がすでに呼び出された後は、getInputStream()を呼び出せません

分類Dev

ステータスが[INSTALLED]のインデックスに対して更新アクション[REINDEX]を呼び出すことはできません。

分類Dev

スプリングブートで角度のあるOPTIONS呼び出しが成功した後、GET要求は呼び出されません

分類Dev

Mavenシェードプラグインは、ゴール「パッケージ」に対して自動的に呼び出されません

分類Dev

PHP から呼び出されたシェル スクリプトは機能しませんが、コマンド ラインでは機能します

分類Dev

onTouch() は親レイアウトに対して呼び出されません

分類Dev

Primefacesアコーディオン:remoteCommandにマップされたactionListenerはもう呼び出されません

分類Dev

UIタップジェスチャスウィフトソリューションが原因でdidSelectRowAtIndexPathが呼び出されていませんか?

分類Dev

正常に登録されましたが、セッションがユーザー名を呼び出すことはできません

分類Dev

keyPathsForValuesAffectingValueForKeyがすべての属性に対して呼び出されるわけではありません

分類Dev

UITableViewのセクション0のヘッダービューに対してGestureRecognizerまたはButtonアクションが呼び出されない

分類Dev

onUpdate()がウィジェットに対して呼び出されませんか?

分類Dev

TypeError: 'int'オブジェクトは、マルチプロセッシングの実行中に呼び出すことができません

分類Dev

lapply または for loop を呼び出すと、R マークダウンでコードを編成することによって生成された HTML にプロットが繰り返し表示されません。

分類Dev

スクリプトのトラップコマンドは、CLIから呼び出された場合は機能しますが、PBSジョブで使用された場合は機能しません。

分類Dev

「イベント」コマンドを呼び出せません:アプリケーションが破棄されました

Related 関連記事

  1. 1

    すべてのセッション値に対して関数が呼び出されているわけではありません

  2. 2

    角度のあるマテリアルでマットオプションが選択されたときに呼び出されるngmodelchange

  3. 3

    Select2オプションtemplateResultが呼び出されていません

  4. 4

    Angular 2、routerOnActivateメソッドがOnActivateを実装するコンポーネントに対して呼び出されることはありません

  5. 5

    addOnDestinationChangedListenerはグローバルアクションに対して呼び出されません

  6. 6

    プロッド中に呼び出されたアクターの内部にシンクしますが、テスト中には呼び出されません

  7. 7

    FlutteronChangedはウィジェットに対して呼び出されません

  8. 8

    QNetworkAccessManagerの終了したシグナルに対してスロットが呼び出されません

  9. 9

    クラスのインスタンスでiter()を呼び出しても、現在の値の「スナップショット」は作成されませんか?

  10. 10

    Angular2アプリケーションでサービスが呼び出されていません

  11. 11

    OnStart()が呼び出されていません。サービスプロセスはサービスコントローラに接続できませんでした。手動で、および他のマシンで動作します

  12. 12

    アクションは呼び出されますが、ヒットしません

  13. 13

    アプリケーションonCreateがテストで呼び出されていません

  14. 14

    java.lang.IllegalStateException:現在のリクエストに対してgetReader()がすでに呼び出された後は、getInputStream()を呼び出せません

  15. 15

    ステータスが[INSTALLED]のインデックスに対して更新アクション[REINDEX]を呼び出すことはできません。

  16. 16

    スプリングブートで角度のあるOPTIONS呼び出しが成功した後、GET要求は呼び出されません

  17. 17

    Mavenシェードプラグインは、ゴール「パッケージ」に対して自動的に呼び出されません

  18. 18

    PHP から呼び出されたシェル スクリプトは機能しませんが、コマンド ラインでは機能します

  19. 19

    onTouch() は親レイアウトに対して呼び出されません

  20. 20

    Primefacesアコーディオン:remoteCommandにマップされたactionListenerはもう呼び出されません

  21. 21

    UIタップジェスチャスウィフトソリューションが原因でdidSelectRowAtIndexPathが呼び出されていませんか?

  22. 22

    正常に登録されましたが、セッションがユーザー名を呼び出すことはできません

  23. 23

    keyPathsForValuesAffectingValueForKeyがすべての属性に対して呼び出されるわけではありません

  24. 24

    UITableViewのセクション0のヘッダービューに対してGestureRecognizerまたはButtonアクションが呼び出されない

  25. 25

    onUpdate()がウィジェットに対して呼び出されませんか?

  26. 26

    TypeError: 'int'オブジェクトは、マルチプロセッシングの実行中に呼び出すことができません

  27. 27

    lapply または for loop を呼び出すと、R マークダウンでコードを編成することによって生成された HTML にプロットが繰り返し表示されません。

  28. 28

    スクリプトのトラップコマンドは、CLIから呼び出された場合は機能しますが、PBSジョブで使用された場合は機能しません。

  29. 29

    「イベント」コマンドを呼び出せません:アプリケーションが破棄されました

ホットタグ

アーカイブ