angular-translate - StaticFilesLoader - 动态传递前缀路径

时间:2015-04-02 18:15:04

标签: dynamic path prefix angular-translate

我是angularjs&的新手。成功地设置了角度平移。但是我想动态传递前缀路径。例如。在下面的代码段中,我想动态传递国家/地区名称。应该如何实现?请建议。

$translateProvider.useStaticFilesLoader({

    prefix: '../translate/uk/',
    suffix: '.json'
});

1 个答案:

答案 0 :(得分:0)

好吧,我终于找到了解决方案。创建了一个自定义加载器,如下所示:

app.factory('customLoader',  
function ($http, $q, $timeout, $rootScope) { 

return function (options) {
  var deferred = $q.defer();
  var filename = $rootScope.name;

  console.log('../translate/' + filename + '/' + options.key + '.json');
  $http({
    method:'GET',
    url: '../translate/' + filename + '/' + options.key + '.json'
  }).success(function (data) {
    deferred.resolve(data);
  }).error(function () {
    deferred.reject(options.key);
  });

  $timeout(function (data) {
        deferred.resolve(data);
    }, 2000);

  return deferred.promise;
}

})

在app.config部分配置如下:

$translateProvider.useLoader('customLoader', {});

并从控制器设置文件名(路径),如下所示:

$rootScope.name = $scope.country;