$rootScope를 사용하는 이유는 무엇입니까?AngularJS로 $broadcast?
Angular에 대한 몇 가지 기본 정보를 찾으려고 했다.JS$rootScope.$broadcast
, 그러나 Angular는JS 설명서는 별로 도움이 되지 않습니다.쉽게 말하면 이걸 왜 쓰죠?
또한 John Papa의 핫타월 템플릿에는 커스텀 기능이 있습니다.$broadcast
:
function $broadcast() {
return $rootScope.$broadcast.apply($rootScope, arguments);
}
나는 이것이 무엇을 하는지 이해하지 못했다.다음은 기본적인 질문 몇 가지입니다.
1) 기능$rootScope.$broadcast
할 수 있을까?
2) 의 차이는 무엇입니까?$rootScope.$broadcast
그리고.$rootScope.$broadcast.apply
?
$rootScope
기본적으로는 이벤트 청취자 및 디스패처로서 기능합니다.
사용 방법에 대한 질문에 답하기 위해 다음과 같이 사용하였습니다.rootScope.$on
;
$rootScope.$broadcast("hi");
$rootScope.$on("hi", function(){
//do something
});
단, 사용하는 것은 나쁜 습관입니다.$rootScope
모든 앱이 $rootScope에 의존하고 어떤 컴포넌트가 어떤 이벤트를 수신하고 있는지 모르는 상황이 되기 때문에 앱의 일반적인 이벤트 서비스입니다.
베스트 프랙티스는 청취 또는 브로드캐스트할 커스텀이벤트별로 서비스를 작성하는 것입니다.
.service("hiEventService",function($rootScope) {
this.broadcast = function() {$rootScope.$broadcast("hi")}
this.listen = function(callback) {$rootScope.$on("hi",callback)}
})
무엇인가.
$rootScope.$broadcast
할 수 있을까?$rootScope.$broadcast
응용 프로그램 범위를 통해 이벤트를 전송합니다.이 앱의 모든 어린이 범위는 다음과 같은 간단한 방법으로 잡을 수 있습니다.$scope.$on()
.직접 부모가 아닌 범위(예를 들어 부모의 분기)에 도달하려면 이벤트를 보내는 것이 특히 유용합니다.
!!! 단, 하지 말아야 할 한 가지입니다.
$rootScope.$on
컨트롤러로부터 송신됩니다.$rootScope
는 어플리케이션입니다.컨트롤러가 파괴되어도 이벤트청취자는 계속 존재하며 컨트롤러가 다시 생성되면 이벤트청취자는 더 많아집니다(따라서 1개의 브로드캐스트가 여러 번 포착됩니다).사용하다$scope.$on()
듣는 사람도 파괴될 수 있어요.와의 차이는 무엇입니까?
$rootScope.$broadcast
&$rootScope.$broadcast.apply
?때때로 당신은 그것을 사용해야 한다.
apply()
특히 디렉티브 및 기타 JS 라이브러리로 작업할 때는 더욱 그렇습니다.하지만 나는 그 코드 베이스를 모르기 때문에, 여기에서는 그것이 사실인지 아닌지는 알 수 없다.
$rootScope($rootScope 。$syslog는 모든 아동 스코프가 들을 수 있는 "글로벌" 이벤트를 발생시키는 편리한 방법입니다.사용만 하면 됩니다.$rootScope
모든 하위 스코프가 메시지를 수신할 수 있으므로 메시지를 브로드캐스트합니다.
루트 스코프는 이벤트를 브로드캐스트합니다.
$rootScope.$broadcast("myEvent");
모든 하위 스코프가 이벤트를 수신할 수 있습니다.
$scope.$on("myEvent",function () {console.log('my event occurred');} );
$rootScope를 사용하는 이유$140?사용할 수 있습니다.$watch
변수 변경이 있는지 확인하고 변수 상태가 변경되었을 때 함수를 실행합니다.그러나 범위 변수 상태의 변경에 관계없이 응용 프로그램의 다른 부분이 수신할 수 있는 이벤트를 발생시킬 수 있습니다.가 바로 때 this this this this $broadcast
도움이 됩니다.
데이터 전송 중!!!
도 그 말을 .$broadcast
할 수 있는 .Object
예:
// the object to transfert
var obj = {
status : 10
}
$rootScope.$broadcast('status_updated', obj);
$scope.$on('status_updated', function(event, obj){
console.log(obj.status); // 10
})
$rootScope란?$140이면 될까요?
메시지를 앵귤러 앱 전체에 걸쳐 각 청취자에게 브로드캐스트합니다.이것은 메시지를 다른 계층 수준(부모, 자녀 또는 형제자매)의 스코프로 전송하는 매우 강력한 수단입니다.
마찬가지로 $rootScope도 있습니다.유일한 차이점은 전자도 $190로 잡혔다는 것입니다.$on, 후자는 $rootScope에 의해서만 포착됩니다.$on.
예에 대해서는, http://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/ 를 참조해 주세요.
언급URL : https://stackoverflow.com/questions/24830679/why-do-we-use-rootscope-broadcast-in-angularjs
'programing' 카테고리의 다른 글
Get_posts는 X일 이내 - Wordpress (0) | 2023.04.04 |
---|---|
오라클 SQL 테이블의 날짜 업데이트 (0) | 2023.04.04 |
@Spring Boot Test에서의 값 "플레이스 홀더를 해결할 수 없습니다" (0) | 2023.04.04 |
서버 검색 및 모니터링 엔진은 더 이상 사용되지 않습니다. (0) | 2023.03.25 |
모든 MUI 구성 요소의 글꼴 패밀리 변경 (0) | 2023.03.25 |