pier-hugo.carpentier écrit:
Bonsoir monsieur, je ne comprends pas bien ce bout de code qui fait parti du fichier controller.js, c'est le "function(event)" qui me pose problème, je ne saisis pas comment on gère l'événement via une fonction, si vous pouviez m'éclairer à ce sujet.
Ci-dessous le reste de la fonction.
// Mise en place d'une fonction pour mettre à jour la vue de la page testLectureNFCCtrl
// à chaque changement de page.
$scope.$on('$locationChangeSuccess', function(event){
$scope.tagID = nfc.bytesToHexString(nfcService.tag.id);
$scope.$apply();
});
Le dernier Tag lu doit être affiché dans la page TestLectureNFC.
Si tu passes ta carte devant le lecteur et que tu ne trouves pas sur cette page, le lecteur lit bien le Tag de ta carte mais ne met pas à jour le champ correspondant dans la page puisqu'elle n'est pas active à ce moment là.
J'ai donc mis en place le traitement de l'événement $locationChangeSuccess qui est envoyé à tous les contrôleurs via leur $scope (chaque contrôleur dispose d'un $scope, un environnement si tu veux contenant des variables, champs ...).
Objectif : lorsque tu retournes sur la page TestLectureNFC, cela lance cet événement. Et si tu as fait le choix de te rendre sur la page TestLectureNFC, son contrôleur est donc activé et traite alors le message $locationChangeSuccess. Là, tu peux changer la valeur du champs qui se trouve dans le template html de la page TestLectureNFC sous {{tagID}} et en changer la valeur par la valeur actuellement stockée dans le service nfcService.
Ce qu'il faut bien comprendre, c'est que le code d'un contrôleur est exécuté dès le premier chargement de la page correspondante. Ensuite, seules les fonctions relatives à des événements qui y ont été installées seront susceptibles de s'exécuter, d'où la mise en place de la fonction d'événement permettant d'actualiser la valeur du Tag.
J'espère que c'est plus clair comme ça.