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 :

Nom : Erreur AngJS.PNG
Affichages : 198
Taille : 16,7 Ko

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 =======
});