2015-04-20 2 views
2

Я работаю над небольшим проектом в AngularJs, в котором я пытаюсь сохранить имя пользователя и пароль в браузере.Не удалось сохранить файлы cookie в AngularJs

вот мой код приложения.js. вы можете видеть, что я ввел ngCookies в качестве инъекции зависимостей.

var app = angular.module('myApp', ['ui.router', 'myApp.routes', 'ngCookies']); 

следующее - мой контроллер входа.

app.controller('loginCtrl', function($scope, loginService) { 

    $scope.login=function(user){ 
     loginService.login(user); 
    } 

}); 

и вот моя служба, которая зовет данные для аутентификации

app.factory('loginService', function($http, $state, $cookies){ 
    return{ 
     login:function(user){ 
      var storedUser = $http.get('data/user.json'). 
       success(function(data) { 

       if(user.email === data.email && user.password === data.password){ 
        //var favoriteCookie = $cookies.get('userEmail'); 
        $cookies.put("userEmail", user.email); 
        $cookies.put("password", user.password);  
        $state.go('dashboard', {}); 
       } else { 
        alert("Invalid Username or Password"); 
       } 

       }) 
      } 
     } 
}); 

когда я запускаю мой проект я получаю эту ошибку. $ cookies.put не является функцией в консоли.

Примечание: Версия AngularJs и радиально-Куки AngularJS v1.2.28

+0

У меня был аналогичный вопрос - посмотрите здесь http://stackoverflow.com/questions/28971126/angular-and-cookies-cookies-get-is-not-a-function –

ответ

4

Пожалуйста, используйте $cookieStore вместо $cookies

Попробуйте

app.factory('loginService', function($http, $state, $cookieStore){ 
    return{ 
     login:function(user){ 
      var storedUser = $http.get('data/user.json'). 
       success(function(data) { 

       if(user.email === data.email && user.password === data.password){ 
        //var favoriteCookie = $cookies.get('userEmail'); 
        $cookieStore.put("userEmail", user.email); 
        $cookieStore.put("password", user.password);  
        $state.go('dashboard', {}); 
       } else { 
        alert("Invalid Username or Password"); 
       } 

       }) 
      } 
     } 
}); 
+0

любую конкретную причину использования $ cookieStore, а не $ ngCookies?, поскольку я читал на сайте angularJs, что Примечание. Служба $ cookieStore устарела. Вместо этого используйте $ cookie. –

+0

@NileshMahajan Если вы посмотрите на https://github.com/angular/angular.js/blob/master/src/ngCookies/cookieStore.js#L36, вы увидите «фабрику» внутри модели «ngCookies». – Tushar

+1

$ cookieStore устарел в пользу $ cookie – Mackelito

0

вместо $cookie.put

var userdetails = { userEmail: user.email, password: user.password }; 

$cookies.UserDetails = angular.toJson(userdetails); 
Смежные вопросы