angular-translate:带有其他查询参数的urlLoader

时间:2016-03-17 12:55:43

标签: angularjs angular-translate

使用angular-translate时,是否可以选择使用其他GET参数调用queryParameter模块(由Pascal Precht制作),而不仅仅使用urlLoader?目前的实施如下:

  $translateProvider.useLoader('$translateUrlLoader', {
    url: 'endpoint/translations',
    queryParameter: 'language'
  });

然后在paritucar控制器中:

$translate.use('en');

我需要做的是用更多参数调用它,例如:

  $translateProvider.useLoader('$translateUrlLoader', {
    url: 'endpoint/translations',
    config: {
      queryParameter: 'language',
      secondParam: 'screen',
      thirdParam: 'client'
    }
  });

然后特别是控制器被调用为:

$translate.use('en','login','pepsi');

结果我需要调用我的API端点,如:

endpoint/translations?language=en&screen=login&client=pepsi

谢谢!

2 个答案:

答案 0 :(得分:1)

通过使用名为angular-translate-loader-partial模块的模块,我认为我们可以做到这一点(https://angular-translate.github.io/docs/#/guide/12_asynchronous-loading

这是这样配置的:

$translateProvider.useLoader('$translatePartialLoader', {
   urlTemplate: 'endpoint/translations/' + $rootScope.clientName + '/{part}/{lang}.json'      
});

并在控制器中使用:

 angular.module('pepsi').controller('sugerCtrl', function ($scope, $translatePartialLoader, $translate) {
  $translatePartialLoader.addPart('suger');
  $translate.refresh();
});

希望这有帮助。

答案 1 :(得分:0)

对我来说它有效:

var serviceBase = 'http://localhost';
$translatePartialLoaderProvider.addPart('core');
$translateProvider.useLoader('$translatePartialLoader', {
    urlTemplate: serviceBase + '/api/translations?lang={lang}&module={part}'
});
$translateProvider.preferredLanguage("de");