Heim >Web-Frontend >js-Tutorial >Eine kurze Diskussion über vier Möglichkeiten der Winkelsteuerungskommunikation
In diesem Artikel werden Ihnen eckige4 Arten der Controller-Kommunikation vorgestellt. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
【Verwandte Empfehlung: „Angular-Tutorial“】
Lassen Sie uns zunächst die 4 Arten der Angular-Controller-Kommunikation zusammenfassen:
Scope-Vererbung.
Ereignisse über $scope übertragen.
Event-Emitter-Modul.
Service.
1. Bereichsvererbung
Unterbereiche können auf Variablen und Funktionen zugreifen, die in ihren Vorgängerbereichen deklariert sind.
<div ng-controller="Controller1"> <div ng-controller="Controller2"> this prints '42':{{answer}} </div> </div> m.controller('Controller1', function ($scope) { $scope.answer = 42; }); m.controller('Controller2', function ($scope) { console.log($scope.answer); });
2. Broadcast-Ereignisse über $scope
$emit-Aufrufe können den Bereich vergrößern, $broadcast wird an untergeordnete Bereiche weitergegeben und $on kann Listener registrieren.
<div ng-controller="Controller1"> <div ng-controller="Controller2"> </div> </div> m.controller('Controller1', function ($scope) { $scope.$on('ping', function (){ console.log('pong'); }); $scope.$broadcast('broadcast'); }); m.controller('Controller2', function ($scope) { $scope.$emit('ping'); $scope.$on('broadcast', function (){ console.log('broadcast'); }); });
3. Das Event-Emitter-Modul funktioniert ähnlich wie der Scope-Emitter:
Event-Emitter ist unabhängig vom Bereich und daher ideal für die Verwendung Dienste, die keinen Zugriff auf den Bereich haben.<script type="text/javascript" src="angular.js"></script> <script type="text/javascript" src="event-emitter.js"></script> <script type="text/javascript"> var app = angular.module('app', []); app.factory('userService', function ($timeout, $window) { var emitter = $window.emitter(); var user = {}; //模拟http错误 $timeout(function () { user.emit('error', 'Could not connect to server'); }, 1000); return user; }); app.factory('profileService', function (userService) { var ret = { user: userService, }; userService.on('error', function () { console.log('get error'); }); return ret; }); </script>
Da es sich bei dem Dienst um einen Singleton handelt, wirkt sich eine Änderung des Werts des Dienstes in einer beliebigen Komponente auf andere Komponenten aus. Die Verwendung ist sehr einfach. Listen Sie den Dienst einfach als auf eine Abhängigkeit, wie im obigen Code gezeigt.
Weitere Kenntnisse zum Thema Programmierung finden Sie unter:Programmierlehre
! !Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über vier Möglichkeiten der Winkelsteuerungskommunikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!