Angularで変更検出を手動でトリガーする 質問する

Angularで変更検出を手動でトリガーする 質問する

プロパティを持つ Angular コンポーネントを作成していますMode(): string

このプロパティを、イベントに応答するのではなくプログラムで設定できるようにしたいと思います。

問題は、ブラウザ イベントがない場合、テンプレート バインディングが{{Mode}}更新されないことです。

この変更検出を手動でトリガーする方法はありますか?

ベストアンサー1

次のいずれかを試してください:

  • ApplicationRef.tick()- AngularJSと同様$rootScope.$digest()- つまり、完全なコンポーネントツリーをチェックする
  • NgZone.run(callback)- と同様$rootScope.$apply(callback)-- つまり、Angular ゾーン内でコールバック関数を評価します。コールバック関数を実行した後、コンポーネント ツリー全体がチェックされることになると思いますが、確信はありません。
  • ChangeDetectorRef.detectChanges()- と同様$scope.$digest()-- つまり、このコンポーネントとその子のみをチェックします

ApplicationRef、、NgZoneまたは をChangeDetectorRefコンポーネントに挿入できます。

おすすめ記事