试图让我迄今为止非常基本的 angularjs 应用程序与翻译支持一起工作。首先我创建应用程序,然后配置$translateProvider
. 然后我为 Data 创建了一个工厂,在其中设置了初始内容,$rootScope
并且还想设置语言。
var app = angular.module('app', ['ngRoute', 'pascalprecht.translate']);
app.config(['$translateProvider', function($translateProvider) {
$translateProvider.preferredLanguage('sv');
$translateProvider.useStaticFilesLoader({
prefix: '/assets/translations/',
suffix: '.json'
});
}]);
app.factory('Data', ['$http', '$rootScope', '$translateProvider',
function ($http, $rootScope, $translateProvider) {
$http.get('/api/get/state').success(function(data) {
$translateProvider.preferredLanguage(data.language);
// ... set other stuff here in $rootScope
});
}
]);
问题是,当我运行此代码时,我得到:
Error: [$injector:unpr] http://errors.angularjs.org/1.2.16/$injector/unpr?p0=%24translateProviderProvider%20%3C-%20%24translateProvider%20%3C-%20Data
at Error (native)
at https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:6:450
at https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:35:431
at Object.c [as get] (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:34:13)
at https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:35:499
at c (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:34:13)
at Object.d [as invoke] (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:34:230)
at https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js:36:13
不可能有这样的依赖吗?在那种情况下,我得到它时如何设置语言?由于我对 angularjs 很陌生,因此我可能做错了事,因此也欢迎任何关于如何以完全不同的方式做事的建议。