Heim  >  Artikel  >  Web-Frontend  >  Können AngularJS-Dienste und -Controller mit externem Code interagieren?

Können AngularJS-Dienste und -Controller mit externem Code interagieren?

Linda Hamilton
Linda HamiltonOriginal
2024-10-19 11:42:30895Durchsuche

Can AngularJS Services and Controllers Interact with External Code?

AngularJS aus Legacy-Code aufrufen

Sie möchten AngularJS in eine Legacy-Flex-Anwendung integrieren, indem Sie Rückrufe von der Flex-App an das DOM-Fenster anhängen . Um dies zu erreichen, können Sie Dienste erstellen, die AngularJS-Controller abhören können. Aber können Sie einen Dienst von außerhalb von AngularJS aktualisieren und kann ein Controller Ereignisse von einem Dienst empfangen?

Lösung:

Der Zugriff auf AngularJS über externen Code ist vergleichbar mit dem Debuggen es oder die Integration in Bibliotheken von Drittanbietern. So interagieren Sie mit DOM-Elementen:

  • angular.element(domElement).scope(): Ruft den aktuellen Bereich für das Element ab.
  • angular.element(domElement).injector(): Erhält den aktuellen App-Injektor.
  • angular.element(domElement).controller(): Erhält die ng-Controller-Instanz .

Mit dem Injektor können Sie auf jeden Dienst in der Angular-Anwendung zugreifen. Ebenso können Sie vom Bereich aus alle veröffentlichten Methoden aufrufen.

Denken Sie daran, alle Modellanpassungen oder Bereichsmethodenaufrufe in $apply() einzuschließen:

$scope.$apply(function(){
  // Perform model changes or method invocations on the Angular app here.
});

Das obige ist der detaillierte Inhalt vonKönnen AngularJS-Dienste und -Controller mit externem Code interagieren?. 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
Vorheriger Artikel:Eintauchen in ReactjsNächster Artikel:Eintauchen in Reactjs