2015-10-16 2 views
0

Я использую Angular в сочетании с require.js. В дополнение к этому я использую аддон angular-translate. Теперь я добавил плагин angular-translate-storage-local и получил эту ошибку: Error: [$injector:unpr] Unknown provider: $translateCookieStorageProvider <- $translateCookieStorage <- $translateLocalStorage <- $translateAngular Translate: LocalStorage plugin и requirejs error

Обычно я бы сказал, что забыл добавить зависимости, но я не сделал (я думаю)!

requirejs.config Мои:

requirejs.config({ 
    shim: { 
     angular: { 
      exports: 'angular' 
     }, 
     ngTranslateLoader: ['ngTranslate'], 
     ngTranslateLocalStorage: ['ngTranslate'] 
    }, 

    paths: { 
     ngTranslate: '../../vendor/angular-translate/angular-translate', 
     ngTranslateLoader: '../../vendor/angular-translate-loader-static-files/angular-translate-loader-static-files', 
     ngTranslateLocalStorage: '../../vendor/angular-translate-storage-local/angular-translate-storage-local' 
    } 
}); 

Мои module:

define(function(require) { 
    require('ngTranslate'); 
    require('ngTranslateLocalStorage'); 
    require('ngTranslateLoader'); 

    var angular = require('angular'); 

    var app = angular.module('app', [ 
     'pascalprecht.translate' 
    ]) 
     .config([$translateProvider', function ($translateProvider) { 
      $translateProvider 
       .useStaticFilesLoader({ 
        prefix: '/language/', 
        suffix: '.json' 
       }) 
       .preferredLanguage('en-DK') 
       .useSanitizeValueStrategy('escape') 
       .useLocalStorage(); 
     }]); 
}); 

Статический загрузчик файлов плагин хорошо работает. Где мой отказ?

Edit: Я добавил следующее в мой requirejs конфигурации:

ngTranslateLocalStorage: ['ngTranslateCookieStorage', 'ngTranslate'], 
ngTranslateCookieStorage: ['ngCookies', 'ngTranslate'], 
ngCookies: ['angular'], 

Теперь я получаю: Error: [$injector:unpr] Unknown provider: $cookieStoreProvider <- $cookieStore <- $translateCookieStorage <- $translateLocalStorage <- $translate

Если я понимаю requirejs Призонная шайба правильно теперь оно должно быть достаточно, чтобы require(ngTranslateLocalStorage), но потом я получаю сообщение что pascalprecht.translate неизвестен. Если мне нужно все депо, хотя это уже сделано в прокладке, я получаю ошибку выше. Еще что-то не так !?

ответ

7

Служба $translateLocalStorage зависит от $translateCookieStorage, которая в свою очередь зависит от $cookieStore от angular-cookies.

Таким образом, вы должны включить также angular-translate-storage-cookie, angular-cookies и добавить ngCookies в зависимости от модуля.

Чтобы подвести итог, вы должны иметь:

"angular-translate" 
"angular-translate-loader-static-files" 
"angular-cookies" 
"angular-translate-storage-cookie" 
"angular-translate-storage-local" 
+0

Я попробовал ваш ответ, но никакого успеха. Я обновил свой вопрос. – messy

+1

Кажется, вы не добавляли 'ngCookies' в массив зависимостей, когда вы определяете' angular.module ('app', [...]) ' –

+0

Он работает, если я' require() 'все. Я подумал, что для этого нужна регулировка requirejs !? – messy

Смежные вопросы