찾다

 >  Q&A  >  본문

angular.js - angularjs中如何在两个控制器中实现实时通信?

有两个控制器 a和b;在a控制器中有一个click事件,单击之后,怎样将b控制中的一个p显示出来?

举个例子:a控制器是菜单,b控制器是内容区,a中单击不同的菜单,b中要控制显示不同的内容,

一些努力:尝试了service和factory,只能共享数据,做不到实时触发

迷茫迷茫2744일 전870

모든 응답(5)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-05-15 16:58:29

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

    으아악

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

    으아악

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

    회신하다
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 16:58:29

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

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-15 16:58:29

    이것을 보시면 됩니다

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

    회신하다
    0
  • 滿天的星座

    滿天的星座2017-05-15 16:58:29

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

    코드는 다음과 같습니다

    으아악

    회신하다
    0
  • 黄舟

    黄舟2017-05-15 16:58:29

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

    를 사용하세요.

    회신하다
    0
  • 취소회신하다