如何在$ translateProvider模块配置中使用localStorageService

问题描述 投票:1回答:1

我使用了带有MEANjs的angular-translate和angular-local-storage,所有都添加到模块依赖,

在app config.js中:

  var service = {
    applicationEnvironment: window.env,
    applicationModuleName: applicationModuleName,
    applicationModuleVendorDependencies: ['ngResource', 'ngAnimate', 'ngMessages', 'ui.router', 'ui.bootstrap', 'ngFileUpload', 'ui-notification',
      'LocalStorageModule', 'pascalprecht.translate', 'angularMoment', 'ngFileSaver', 'ngSanitize', 'uiCropper', 'hc.marked'],
    registerModule: registerModule
  };

在init.js中:

  angular
    .module(app.applicationModuleName)
    .config(localStorageModuleConfig)
    .config(transConfig);

  localStorageModuleConfig.$inject = ['localStorageServiceProvider'];
  function localStorageModuleConfig(localStorageServiceProvider) {
    console.log('localStorageModuleConfig');
    localStorageServiceProvider
      .setPrefix('meanTorrent')
      .setStorageType('localStorage')
      .setDefaultToCookie(true)
      .setNotify(true, true);
  }

  transConfig.$inject = ['$translateProvider', 'localStorageService'];
  function transConfig($translateProvider, localStorageService) {
    $translateProvider.useSanitizeValueStrategy(null);

    var user_lang = navigator.language || navigator.userLanguage;
    user_lang = user_lang.substr(0, 2) || 'en';

    var storage_lang = localStorageService.get('storage_user_lang');
    user_lang = storage_lang || user_lang;

    $translateProvider.preferredLanguage(user_lang);
  }

我已经在html中包含所有.js文件,运行时,我得到错误Unknown provider: localStorageService,我知道在配置部分,必须使用提供商,但如果我在localStorageServiceProvider使用transConfig,它不能到.get('storage_user_lang')

在配置中使用服务的任何方式?或如何使用提供商来调用自助服务的方法?

angularjs meanjs angular-translate angular-local-storage
1个回答
0
投票

您不能将服务注入配置块(仅提供者和常量),

我使用window.localStorage来解决这个问题localStorage

© www.soinside.com 2019 - 2024. All rights reserved.