AngularJS, $cookieStore.put не является функцией
Я получаю сообщение об ошибке: "$cookieStore.put не является функцией, когда я пытаюсь сохранить файлы cookie в своем приложении. Я использую AngularJS 1.4.1 и файлы cookie той же версии.
var examinationApp = angular.module("examinationApp", ['ngCookies']);
examinationApp.controller("examinationCtrl", ['$scope', '$window', '$http',
'$interval','$cookieStore', function ($scope, $window, $http, $cookieStore,
modalDialog){
$scope.saveTestsToCookieStore = function () {
$cookieStore.put('answeredTests',JSON.stringify($scope.data));
$cookieStore.put('answeredQuestions',JSON.stringify($scope.answeredTests));
$cookieStore.put('questionStopped',$scope.currentQN);
}...
Когда я пытаюсь сохранить куки, я получаю ошибку - TypeError: $cookieStore.put не является функцией.
Что я делаю неправильно?
3 ответа
Ваши параметры не совпадают...
Сравните ваш список зависимостей в аннотации встроенного массива со списком параметров в объявлении функции. Списки зависимостей должны выстраиваться (одинаковые зависимости в одинаковом порядке). (В основном, ваша функция контроллера пыталась вызвать put
на $interval
а не на $cookieStore
)
Что у тебя есть...
examinationApp.controller("examinationCtrl", [
'$scope', '$window', '$http', '$interval','$cookieStore',
function ($scope, $window, $http, $cookieStore, modalDialog) {
Что вам нужно...
examinationApp.controller("examinationCtrl", [
'$scope', '$window', '$http', '$cookieStore', 'modalDialog',
function ($scope, $window, $http, $cookieStore, modalDialog) {
Angularjs >= 1,3
Служба $cookieStore устарела. Пожалуйста, используйте вместо этого сервис $cookies.
Вы должны использовать $cookies для чтения / записи доступа к файлам cookie браузера.
Угловая версия == 1.3.5. Предположим, что значение заголовка было установлено "X-AUTH-TOKEN = 'eyJwYXNzd29yZCI6ImFkbWlu'" в классе безопасности приложения после аутентификации.
$scope.postData = "{\"username\" : username , \"password\": password ,\"email\" :email}";
$http({
method: 'POST',
url: '/API/authenticate',
data: postData,
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"X-Login-Ajax-call": 'true'
}
})
.then(function(response) {
if (response.data == 'ok') {
$cookies['X-AUTH-TOKEN']=response.headers('X-AUTH-TOKEN');
window.location.replace('/');
}
else {
// Error Message...
}
});