编程语言
首页 > 编程语言> > javascript – AngularJS:在app.js中获取翻译密钥

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