DOM ウィンドウ コールバックを必要とするレガシー コードと AngularJS コントロールを統合するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-19 10:34:29
オリジナル
121 人が閲覧しました

How to Integrate AngularJS Controls with Legacy Code Requiring DOM Window Callbacks?

レガシー コードから AngularJS を呼び出す

問題:
AngularJS コントロールをレガシー Flex と統合する必要がありますDOM ウィンドウにアタッチされたコールバックを必要とするアプリケーション。

解決策:

AngularJS コントローラーがフレームワークの外部からリッスンできるイベントをディスパッチするには、次の手順に従います。

  1. スコープとインジェクターを取得します:

    • angular.element(domElement).scope() を使用して、HTML の現在のスコープを取得します。 AngularJS アプリケーションの更新に使用される要素。
    • 現在のアプリ インジェクターにアクセスするには、angular.element(domElement).injector() を使用します。
  2. AngularJS サービスを取得します:

    • インジェクターから、更新する AngularJS サービスを取得します。
  3. AngularJS 関数の呼び出し:

    • AngularJS 内で、スコープ上のモデルへの更新またはメソッド呼び出しを $apply(function(){ ... }) でラップして、適切な変更の伝播を確保します。 .

使用例:

// Get the AngularJS scope and service
var scope = angular.element(document.getElementsByTagName('body')[0]).scope();
var service = scope.injector().get('myService');

// Invoke an AngularJS method
scope.$apply(function () {
  service.update();
});
ログイン後にコピー

追加メモ:

  • AngularJS モデルまたはスコープ メソッドの呼び出しへの変更は、$apply() でラップする必要があります。
  • angular.element(domElement).controller() を使用して、HTML 要素に関連付けられた AngularJS コントローラーにアクセスできます。

以上がDOM ウィンドウ コールバックを必要とするレガシー コードと AngularJS コントロールを統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!