Heim  >  Artikel  >  Web-Frontend  >  Wie integriere ich AngularJS-Steuerelemente in Legacy-Code, der DOM-Fensterrückrufe erfordert?

Wie integriere ich AngularJS-Steuerelemente in Legacy-Code, der DOM-Fensterrückrufe erfordert?

Barbara Streisand
Barbara StreisandOriginal
2024-10-19 10:34:29122Durchsuche

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

AngularJS aus Legacy-Code aufrufen

Problem:
Sie müssen AngularJS-Steuerelemente mit einem Legacy-Flex integrieren Anwendung, die Rückrufe erfordert, die an das DOM-Fenster angehängt sind.

Lösung:

Um Ereignisse auszulösen, die AngularJS-Controller von außerhalb des Frameworks abhören können, führen Sie die folgenden Schritte aus:

  1. Bereich und Injektor abrufen:

    • Verwenden Sie angle.element(domElement).scope(), um den aktuellen Bereich für den HTML-Code abzurufen Element, das zum Aktualisieren der AngularJS-Anwendung verwendet wird.
    • Verwenden Sie angle.element(domElement).injector(), um auf den aktuellen App-Injektor zuzugreifen.
  2. Besorgen Sie sich den AngularJS-Dienst:

    • Besorgen Sie sich vom Injektor den AngularJS-Dienst, den Sie aktualisieren möchten.
  3. AngularJS-Funktionen aufrufen:

    • In AngularJS alle Aktualisierungen der Modell- oder Methodenaufrufe im Bereich in $apply(function(){ ... }) einschließen, um eine ordnungsgemäße Änderungsweitergabe sicherzustellen .

Beispielverwendung:

// 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();
});

Zusätzliche Hinweise:

  • Änderungen am AngularJS-Modell oder an Scope-Methodenaufrufen müssen in $apply() eingeschlossen werden.
  • Sie können angle.element(domElement).controller() verwenden, um auf den AngularJS-Controller zuzugreifen, der dem HTML-Element zugeordnet ist.

Das obige ist der detaillierte Inhalt vonWie integriere ich AngularJS-Steuerelemente in Legacy-Code, der DOM-Fensterrückrufe erfordert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn