Ответ 1
angular -cookie.js версия должна иметь ту же версию, что angular.js
"//code.angularjs.org/X.Y.Z/angular-cookies.js" где X.Y.Z - версия AngularJS, в которой вы работаете.
Мое определение основного модуля:
angular.module('app', ['app.animators',
'app.places',
'app.orders',
'app.excursions',
'app.events',
'app.hotel',
'app.controllers',
'app.services',
'angular-img-cropper',
'ui.router',
'templates',
'ngResource',
'ngCookies',
'ui.bootstrap',
'ngImgCrop',
'angularjs-dropdown-multiselect',
'uiGmapgoogle-maps'])
.config(['$httpProvider', '$locationProvider', '$stateProvider', '$urlRouterProvider', ($httpProvider, $locationProvider, $stateProvider, $urlRouterProvider) ->
$httpProvider.defaults.headers.common['X-CSRF-Token'] = $('meta[name=csrf-token]').attr('content')
$urlRouterProvider.otherwise("/admin/home")
$stateProvider.state('admin.services'
url: '/services'
controller: 'ServicesController'
templateUrl: 'services.html'
).state('admin.home'
url: '/home'
templateUrl: 'home.html'
).state('signIn'
url: '/admin/signin'
controller: 'SignInController'
templateUrl: 'signin.html'
resolve:
user: ['authService', '$q', (authService, $q) ->
$q.reject({ authorized : true }) if authService.currentUser()
]
).state('admin.signOut'
url: '/signout'
controller: 'SignOutController'
).state('404'
url: '/404'
templateUrl: '404.html'
).state('admin'
abstract: true
url: '/admin'
template: '<ui-view />'
resolve:
user: ['authService', '$q', (authService, $q) ->
$q.reject({ unAuthorized : true }) unless authService.currentUser()
]
)
$locationProvider.html5Mode(true)
])
Также в index.html есть <script src="/assets/angular-cookies/angular-cookies.js?body=1">
. Я получаю ошибку в этом модуле:
angular.module('app.services', []).factory('authService', ['SIGN_IN_ENDPOINT', 'SIGN_OUT_ENDPOINT', '$http', '$cookies', (SIGN_IN_ENDPOINT, SIGN_OUT_ENDPOINT, $http, $cookies) ->
auth = {}
auth.signIn = (credentials) ->
return $http.post(SIGN_IN_ENDPOINT, { user: credentials })
auth.signOut = ->
return $http.delete(SIGN_OUT_ENDPOINT)
auth.currentUser = ->
$cookies.remember_token
auth
]).value('SIGN_IN_ENDPOINT', "#{ location.protocol }//#{ location.host }/sign_in").value('SIGN_OUT_ENDPOINT', "#{ location.protocol }//#{ location.host }/sign_out")
.factory("httpErrorInterceptorModule", ["$q", "$rootScope", "$location", ($q, $rootScope, $location) ->
success = (response) ->
return response;
error = (response) ->
if(response.status is 401)
$location.path('/admin/signin')
return $q.reject(response)
return (httpPromise) ->
return httpPromise.then(success, error)
]).config(["$httpProvider", ($httpProvider) ->
$httpProvider.responseInterceptors.push("httpErrorInterceptorModule")
])
Ошибка: Error: [$injector:unpr] Unknown provider: $$cookieReaderProvider <- $$cookieReader <- $cookies <- authService
Чем я ошибаюсь? Заранее спасибо. Версия AngularJS - 1.2.25. Заранее спасибо.
angular -cookie.js версия должна иметь ту же версию, что angular.js
"//code.angularjs.org/X.Y.Z/angular-cookies.js" где X.Y.Z - версия AngularJS, в которой вы работаете.
Если вы используете angularJs версии 1.3, используйте angular -cookies 1.3.17!
В моем проекте у меня такая же проблема! Так что я сделал понижение!
Это происходит потому, что при инициализации модуля app.services
вы забудете ввести ngCookies
. Вы включаете только ngCookies
в app
, который является другим модулем.
Быстрое исправление здесь изменяет определение вашего модуля на
angular.module('app.services', ['ngCookies']).factory('authService', ...