0

$translateProvider在 Angular JS 中使用这样的翻译:

app.config(['$translateProvider', function($translateProvider) {
    $translateProvider.translations('en', {
        'RECHERCHE': 'Search',
        'RESULTATS': 'Results'            
    });
    $translateProvider.translations('fr', {
        'RECHERCHE': 'Recherche',
        'RESULTATS': 'Resultats'
    });
    $translateProvider.preferredLanguage('en');
}]);

它工作正常。

现在,我想从数据库中获取我的数据(翻译词),所以当我从控制器中的数据库中获取我的数据时,我尝试使用$rootScope这样的方式获取我的数据(例如单词'GAME'):

app.config(['$translateProvider', function($translateProvider,$rootScope) {
    $translateProvider.translations('en', {
        'RECHERCHE': 'Search',
        'RESULTATS': 'Results',
        'GAME': $rootScope.gameEn
    });
    $translateProvider.translations('fr', {
        'RECHERCHE': 'Recherche',
        'RESULTATS': 'Resultats',
        'GAME': $rootScope.gameFr

    });
    $translateProvider.preferredLanguage('en');
}]);

它不起作用,谁能帮助并告诉我如何从数据库中获取我的数据config

4

1 回答 1

0

配置的唯一可能参数是提供者。您不能将 $rootScope 注入到配置中。

尝试这样的事情

angular.module(provider.translation').factory('localizationLoader', function ($http, $q, $locale) {

    return function (options) {
        var deferred = $q.defer();
        $http({
            method:'GET',
            url:'<Your url>'
        }).success(function (data) {
            deferred.resolve(data);
        }).error(function () {
            deferred.reject();
        });

        return deferred.promise;
    }
})

angular.module('provider.translation').config(function ($translateProvider) {
    $translateProvider.useLoader('localizationLoader', {});
})
于 2014-06-04T10:46:05.427 回答