Bonjour,
J'ai un petit problème avec AngularJS.
J'essaye d'appeler une fonction (depuis un contrôleur) se trouvant dans un service mais Angular me retourne une erreur.
=> Elle se trouve dans une variable => var maVar = function() { //etc... };
J'ai essayé nomDuService.maVar(); mais j'ai une erreur du genre 'nomDuService.maVar();' is not a function
Je ne comprend pas pourquoi donc je fait appel à vous
Voici l'erreur :
Et le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 login.service("authentication", ["$http", "$window", function($http, $window) { var saveToken = function(token) { // Sauvegarde $window.localStorage["mean-token"] = token // Sauve le token en local }; var getToken = function() { // Récupération return $window.localStorage["mean-token"]; }; var logout = function() { // Déconneion $window.localStorage.removeItem("mean-token"); }; var isLoggedIn = function(token) { var token = getToken(); var payload; if (token) { payload = token.split(".")[1]; // Split le token lors d'un "." et on retourne l'élément d'index [1] payload = $window.atob(payload); // Décode payload = JSON.parse(payload); // Parse en JSON if (payload.exp > Date.now() / 1000) return true; // True si date n'est pas dépassée } else { return false; } }; var currentUser = function() { // La fonction en question ============================== var token = getToken(); var payload; if (isLoggedIn()) { payload = token.split(".")[1]; // Split le token lors d'un "." et on retourne l'élément d'index [1] payload = $window.atob(payload); // Décode payload = JSON.parse(payload); // Parse en JSON console.log(payload); return { mail: payload.mail, lastname: payload.lastname }; } }; return { // On renvoi tout dans un objet saveToken: saveToken, getToken: getToken, logout: logout, isLoggedIn: isLoggedIn }; }]); // Contrôleur home login.controller("MainCtrl", function($rootScope, authentication) { $rootScope.title = "Bienvenue" $rootScope.sent = false; //console.log(authentication.isLoggedIn()); $rootScope.isLoggedIn = authentication.isLoggedIn(); $rootScope.currentUser = authentication.currentUser(); // ICI => TypeError: authentication.currentUser is not a function ======= });
Partager