찾다

 >  Q&A  >  본문

angular.js - angular $scope.$on 接收事件重复执行

angular controller 之间通过事件传递值

页面每次刷新路由都会对视图 ui-view 进行刷新,

绑定在内的控制器

angular.controller('listCtrl',[])

会进行重载,(因为我把 listCtrl 控制器绑定到了视图内的标签上)

controller 内的

$scope.$on('testData',function(ev,data){
 //
})

会记录 listCtrl 重载的次数,等接收到 testData 事件的时候,$on 会重复执行相应的次数。

我只想让 testData 执行一次,应该怎么做

给我你的怀抱给我你的怀抱2744일 전973

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

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-15 17:07:58

    초대해 주셔서 감사합니다. 서비스를 작성하거나 $rootScope

    에 전역 변수를 걸어보세요. 으아악

    물론 이벤트 구독 및 전송과 관련하여 라우팅과 같이 모든 범위에 대한 알림이 필요한 상황이 아닌 경우 AngularJS에 제공되는 이벤트 메커니즘을 사용하지 않는 것이 좋습니다. 이를 처리하기 위해 EventBus 서비스를 작성하는 것이 좋습니다. 당신 자신. AngularJS의 이벤트 메커니즘은 전체 범위 트리를 탐색해야 하므로 성능은 평균입니다.

    우리 팀의 내부 요약을 추천하세요:
    https://github.com/ShuyunXIAN...

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