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
Post a Comment