>웹 프론트엔드 >JS 튜토리얼 >AngularJS에서 컨트롤러는 어떻게 서로 통신할 수 있나요?

AngularJS에서 컨트롤러는 어떻게 서로 통신할 수 있나요?

DDD
DDD원래의
2024-12-05 09:48:11369검색

How Can Controllers Communicate with Each Other in AngularJS?

AngularJS의 컨트롤러 간 통신

AngularJS에서는 한 컨트롤러가 다른 컨트롤러를 호출하는 것이 가능합니다. 이를 달성하기 위한 여러 접근 방식이 있으며 각각 고유한 장점과 사용 사례가 있습니다.

종속성 주입

제공된 예에서 HTML 문서는 MessageCtrl 컨트롤러를 사용하여 메시지를 표시합니다. 다른 컨트롤러에서 데이터를 전달하려면 통신을 중재하는 서비스를 생성할 수 있습니다.

<br>angular.module('myApp', []).<br> service('DataService' , function() {</p>
<pre class="brush:php;toolbar:false">this.data = { date: new Date().toString() };

}).
컨트롤러('MessageCtrl', ['$scope', 'DataService', function($scope, DataService) {

$scope.message = DataService.data.date;

}]).
컨트롤러('DateCtrl', ['DataService', function(DataService) {

DataService.data.date = 'Custom date format';

}]);

이 시나리오에서는 MessageCtrl은 DateCtrl에서 날짜 형식을 수정하는 데 사용되는 DataService에 액세스할 수 있습니다. 이를 통해 컨트롤러 간의 동기화된 통신이 보장됩니다.

스코프 이벤트

또 다른 방법은 스코프에서 이벤트를 내보내는 것입니다. 이벤트가 발생하면 해당 이벤트에 대한 리스너를 등록한 모든 컨트롤러가 응답할 수 있습니다.

<br>angular.module('myApp', []).<br> Controller(' MessageCtrl', ['$scope', function($scope) {</p>
<pre class="brush:php;toolbar:false">$scope.$on('dateUpdated', function(event, newDate) {
  $scope.message = newDate;
});

}]).
Controller('DateCtrl', ['$scope', function($scope) {

$scope.$emit('dateUpdated', 'Custom date format');

}]);

이 예에서는 DateCtrl MessageCtrl이 수신 대기하고 해당 메시지를 업데이트하여 응답하는 이벤트를 내보냅니다. 이를 통해 보다 반응적인 통신 패턴이 가능해집니다.

이는 AngularJS에서 컨트롤러 간 통신을 달성하는 방법 중 일부에 불과합니다. 최선의 접근 방식은 애플리케이션의 특정 요구 사항에 따라 다릅니다.

위 내용은 AngularJS에서 컨트롤러는 어떻게 서로 통신할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.