ホームページ  >  記事  >  ウェブフロントエンド  >  DOM ウィンドウ コールバックを必要とするレガシー コードと AngularJS コントロールを統合するにはどうすればよいですか?

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

Barbara Streisand
Barbara Streisandオリジナル
2024-10-19 10:34:29122ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。