javascript - Undeclared variable receiving a function in a Angular service -


i'm getting started angular js , i'm working on tutorial found on internet : http://www.sitepoint.com/user-authenication-mean-stack/

in service there 3 undeclared variables receiving function , don't understand syntax despite researches.

code :

register = function(user) {   return $http.post('/api/register', user).success(function(data){     savetoken(data.token);   }); }; 

the code whole service:

(function () {    angular     .module('meanapp') // service qui dépend de ce module ?     .service('authentication', authentication);    // $inject : allow minifiers rename function parameters , still able inject right services, function needs annotated $inject property. $inject property array of service names inject.   // https://docs.angularjs.org/guide/di    authentication.$inject = ['$http', '$window'];    function authentication ($http, $window) {       var savetoken = function (token) {       $window.localstorage['mean-token'] = token;     };      var gettoken = function () {       return $window.localstorage['mean-token'];     };      var isloggedin = function() {       var token = gettoken();       var payload;        if(token){         payload = token.split('.')[1];         payload = $window.atob(payload); decode base64 string         payload = json.parse(payload);          return payload.exp > date.now() / 1000;       } else {         return false;       }     };      var currentuser = function() {       if(isloggedin()){         var token = gettoken();         var payload = token.split('.')[1];         payload = $window.atob(payload);         payload = json.parse(payload);         return {           email : payload.email,           name : payload.name         };       }     };      //an interface between angular app , api, call login , register end-points , save returned token. use angular $http service     register = function(user) {       return $http.post('/api/register', user).success(function(data){         savetoken(data.token);       });     };      login = function(user) {       return $http.post('/api/login', user).success(function(data) {         savetoken(data.token);       });     };      logout = function() {       $window.localstorage.removeitem('mean-token');     };      return {       currentuser : currentuser,       savetoken : savetoken,       gettoken : gettoken,       isloggedin : isloggedin,       register : register,       login : login,       logout : logout     };   }   })(); 

thank explanations

this code example inconsistent declaring variables. it's considered best practice use var statement when declaring variable, when not running strict mode var can omitted.

you should use 'use strict' @ top of javascript file, undeclared variables won't permitted browser running js in strict mode.

something this:

(function () {   'use strict';   angular     .module('meanapp') // service qui dépend de ce module ?     .service('authentication', authentication); [...] 

Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

reactjs - React router and this.props.children - how to pass state to this.props.children -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -