検索

ホームページ  >  に質問  >  本文

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日前974

全員に返信(1)返信します

  • 曾经蜡笔没有小新

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

    ご招待ありがとうございます。サービスを作成するか、$rootScope にグローバル変数をハングしてください

    リーリー

    もちろん、イベントのサブスクリプションと送信に関しては、ルーティングのようなすべてのスコープの通知が必要な状況ではない場合は、AngularJS に付属するイベント メカニズムを使用せず、それを処理する EventBus サービスを作成することをお勧めします。あなた自身。 AngularJS のイベント メカニズムはスコープ ツリー全体を横断する必要があるため、パフォーマンスは平均的です。

    私たちのチームの内部概要を推奨します:
    https://github.com/ShuyunXIAN...

    返事
    0
  • キャンセル返事