Maison > Questions et réponses > le corps du texte
angulaire controller
à travers les événements
Chaque fois que la page actualise l'itinéraire, la vue ui-view
sera actualisée,
Contrôleur lié
angular.controller('listCtrl',[])
sera rechargé (car j'ai lié le contrôleur listCtrl
à l'étiquette dans la vue)
controller
dans
$scope.$on('testData',function(ev,data){
//
})
enregistrera le nombre de fois que listCtrl
est rechargé. Lorsque l'événement testData
est reçu, $on
sera exécuté à plusieurs reprises pour le nombre de fois correspondant.
Je veux que testData
soit exécuté une seule fois, que dois-je faire
曾经蜡笔没有小新2017-05-15 17:07:58
Merci pour l'invitation, écrire un service ou accrocher une variable globale sur $rootScope
if(!$rootScope.isInvoked) {
var unbindHandler = $scope.$on('testData', function(evt, data) {
//执行完成后就把该事件解绑
unbindHandler();
$rootScope.isInvoked = true;
});
}
Bien sûr, en ce qui concerne l'abonnement et l'envoi d'événements, s'il ne s'agit pas de quelque chose comme le routage qui nécessite une notification à toutes les étendues, il est recommandé de ne pas utiliser le mécanisme d'événements fourni avec AngularJS. Il est recommandé d'écrire un service EventBus pour gérer. c'est vous-même. Étant donné que le mécanisme d'événements d'AngularJS doit parcourir l'intégralité de l'arborescence de portée, les performances sont moyennes.
Recommander une synthèse interne de notre équipe :
https://github.com/ShuyunXIAN...