2013-08-14 4 views
1

Я работаю над веб-приложением, используя angularjs. Мне нужен адрес электронной почты пользователя в моем приложении, как я могу его сохранить для дальнейшего использования?Как сохранить данные пользователя для дальнейшего использования в angularjs

В настоящее время, что я делаю:

Я создал службу пользователя

'use strict'; 

var module = angular.module('moduleName'); 

module.factory('UserService',['$resource',function($resource){ 
    var currentUserEmail = null; 
    return { 
     getUserResource : function(){ 
      return $resource('users',{email:'@email'}); 
     }, 
     saveCurrentUserEmail : function (email){ 
      currentUserEmail = email; 
     }, 
     getCurrentUserEmail : function(){ 
      return currentUserEmail; 
     } 
    }; 
}]); 

При входе я хранить адрес электронной почты пользователя с помощью службы пользователя:

UserService.saveCurrentUserEmail($scope.username); 

сейчас , когда я перехожу к другому представлению, в контроллере пользовательская электронная почта - это то, что я ожидаю.

console.debug("Current User email "+UserService.getCurrentUserEmail()); 

Что выводит адрес электронной почты пользователя

Но когда я обновить страницу с (Ctrl + F5). то текущий адрес электронной почты пользователя равен нулю.

Current User email null 

Что я делаю неправильно или что мне делать, чтобы сохранить этот адрес электронной почты для дальнейшего использования?

ответ

0

Вы получаете распечатанную электронную почту пользователя, потому что перед печатью вы под название вашей службы UserService.saveCurrentUserEmail($scope.username);

Теперь, когда вы обновите страницу (Ctrl + F5), эта услуга не называется, так что печатаются в нуль, так как его Initialize с нулевым значением.

Так что вам нужно позвонить saveCurrentUserEmail, когда ваша страница загружается.

+0

Спасибо, но пользователь электронной почты является недействительным после того, я не могу сохранить его. – Shahzeb

0

На странице обновления вам необходимо сделать вызов на сервер, чтобы проверить, если ваш будет войти и обновить

$scope.username 

и хранить его с помощью

UserService.saveCurrentUserEmail($scope.username); 

Или

Вы можете использовать клиентский магазин в браузере или используйте cookie для http://docs.angularjs.org/api/ngCookies. $ cookieStore для хранения информации о пользователе

0

Вместо использования сервиса используйте $ cookieStore. . http://docs.angularjs.org/api/ngCookies $ CookieStore

emailAddress для примера - "[email protected]"

//That's how i am assigning value 
$cookieStore.put('emailAddress', $scope.user.emailAddress); 

//thats how i am retrieving it 
addr = $cookieStore.get('emailAddress'); 
Смежные вопросы