451

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

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

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

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

4

5 に答える 5

721

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

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

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

于 2016-01-16T16:09:30.843 に答える