我在Angular JS中使用$translateProvider
进行翻译,如下所示:
app.config(['$translateProvider', function($translateProvider) {
$translateProvider.translations('en', {
'RECHERCHE': 'Search',
'RESULTATS': 'Results'
});
$translateProvider.translations('fr', {
'RECHERCHE': 'Recherche',
'RESULTATS': 'Resultats'
});
$translateProvider.preferredLanguage('en');
}]);
效果很好。
现在,我想从数据库中获取我的数据(翻译字),所以当我从控制器中的数据库获取数据时,我尝试使用$rootScope
来获取这样的数据(例如“游戏”一词:
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
中的数据吗?
答案 0 :(得分: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', {});
})