javascript – AngularJS:在app.js中获取翻译密钥
作者:互联网
在我的应用程序中,我使用AngularJS模块Pascal Precht(翻译模块).我来找你,因为我无法使用我的方法myApp.Run app.js翻译密钥.
我可以在控制器或视图中执行.但是在项目初始化时无法获得它.它向我展示了关键,而不是通信.
你有解决方案吗?
这是我的代码:
var myApp = angular.module('myApp', ['ngRoute', 'ngAnimate', 'myApp.filters', 'myApp.services', 'myApp.directives', 'pascalprecht.translate']);
// Declare routeProvider
myApp.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/', {templateUrl:'partials/connectView.html', controller:'ConnectController'});
$routeProvider.when('/homeView', {templateUrl:'partials/homeView.html', controller:'HomeController'});
}]);
// Declare translateProvider
myApp.config(['$translateProvider', function($translateProvider) {
$translateProvider.useStaticFilesLoader({
prefix: 'res/localization/lang-',
suffix: '.json'
});
$translateProvider.preferredLanguage('fr_FR');
//$translateProvider.preferredLanguage('en_US');
}]);
// Declare Global variables
myApp.run(['$rootScope', '$filter', function($rootScope, $filter) {
$rootScope.list = false;
etc....
//I'm trying to get translate Key but it doesn't work
console.log($filter('translate')('MY_KEY'));
}]);
我的AngularJS版本是1.2.16(最后一个稳定版本).谢谢
解决方法:
尝试在app.run()中注入$translate服务.
angular-translate版本1.1.1及以下
myApp.run(['$rootScope', '$translate', '$log', function ($rootScope, $translate, $log) {
$log.debug($translate('MY_KEY'));
}]);
我还建议您升级到最新版本的Pascal Precht angular-translate. new version中有一些changes.
angular-translate版本2.0.0及更高版本
myApp.run(['$rootScope', '$translate', '$log', function ($rootScope, $translate, $log) {
// translate via promises (recommended way)
$translate(['MY_KEY', 'MY_OTHER_KEY'])
.then(function (translation) {
$log.debug(translation.MY_KEY);
});
// translate instantly from the internal state of loaded translation
$log.debug($translate.instant('MY_KEY'));
}]);
见这个有用的migration guide.
标签:angular-translate,javascript,angularjs 来源: https://codeday.me/bug/20190725/1530658.html