angular.js-Angularjs의 두 컨트롤러에서 실시간 통신을 달성하는 방법은 무엇입니까?
迷茫
迷茫 2017-05-15 16:56:29
0
5
897

두 개의 컨트롤러 a와 b가 있습니다. 컨트롤러 a에 클릭 이벤트가 있습니다. 클릭한 후 컨트롤 b에 p를 표시하는 방법은 무엇입니까?

예: 컨트롤러 a는 메뉴이고 컨트롤러 b는 콘텐츠 영역입니다. a에서 다른 메뉴를 클릭하고 b에서 다른 콘텐츠 표시를 제어합니다.

약간의 노력: 서비스와 공장을 시도했지만 데이터만 공유할 수 있고 실시간으로 실행할 수는 없습니다

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(5)
洪涛

저는 여기서 두 가지 방법을 시도했습니다:
1.Angular 자체 이벤트 메커니즘을 사용합니다

으아악

컨트롤러에서 a를 추가하여 b에 이벤트 알림을 보냅니다:

으아악

2. 서비스를 사용하여 콜백 이벤트를 시뮬레이션합니다. 핵심은 서비스를 사용하여 컨트롤러 간에 사용할 전역 콜백 함수를 저장하는 것입니다. 으아악

过去多啦不再A梦

흠. 이벤트 버블링 및 터널링 메커니즘을 사용해 볼 수 있습니다.

给我你的怀抱

이것을 보시면 됩니다

보다 직접적으로 $broadcast 및 $on을 시도할 수 있지만 효율성이 떨어집니다

滿天的星座

위에 쓴 내용이 충분히 순수하지 않은 것 같아(다른 고려 사항이 섞여 있음) 순수 버전을 추가하겠습니다.
데모 제공

코드는 다음과 같습니다

으아악
黄舟

1) 모든 이벤트를 전 세계적으로 관리하기 위한 이벤트 버스 만들기
2) $broadcast 및 $emit

를 사용하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿