$ rootScope。$ broadcast在设置后备语言时失败

时间:2017-01-13 09:28:31

标签: javascript angularjs translation

在角度应用中实现本地化。 在app.js中,编写下面的代码来支持后备语言,如果需要.json文件不在特定的{{de-DE}} \文件夹中。 (以德语为例)

function configure($routeProvider, $locationProvider, $translateProvider, $httpProvider, $compileProvider) {
$routeProvider            
            .when('/instructions', {
                templateUrl: "app/instructions/Instructions.html",
                resolve: {
                    translatePartialLoader: ['$translate', '$translatePartialLoader', function ($translate, $translatePartialLoader) {
                        $translatePartialLoader.addPart('instructions');
                        $translatePartialLoader.addPart('common');
                      

                        //$translatePartialLoader.addPart('instructions').then(function (data) {
                            //console.log(data);
                        //});
                        //$translatePartialLoader.addPart('common').then(function (data) {
                          //  console.log(data);
                        //});

                        $translateProvider.fallbackLanguage("en-US");
                        return $translate.refresh();
                    }]
                }
            })            
          .otherwise(
                {
                    redirectTo: redirectTo
                });

        $httpProvider.useApplyAsync(true);



        //$locationProvider.html5Mode(true);
        $translateProvider.preferredLanguage($("#CultureCode").val());
        $translateProvider.fallbackLanguage('en-US');
  }

将我的浏览器设置更改为德语(谷歌浏览器)后。找不到文件,所以它不得不回退。使用上面的代码,我的后备语言是英语。所以app从{{en-US}} \文件夹下载了.json文件。

但实际问题是。

一旦所有代码都出类拔萃,就在我写过的一个地方。

  $rootScope.$broadcast("SHIFT_CHANGED");

订阅下面的活动。

$scope.$on("SHIFT_CHANGED", function() {

  loadInstructions();
});

这里加载我的main方法中的指令。哪个没有被执行因为。 Shift_changed事件没有被解雇。

在我将这些.json文件粘贴到德语文件夹中时,用于测试目的。应用开始工作。但我正在尝试实施后备。

我尝试了几个代码,上面注释了这些代码。 addpart试图解决承诺。

但他们都没有工作。

我错过了一些东西。在控制台中没有错误。

无法弄明白。任何进一步排除故障的想法/确实缺少某些代码。

请帮忙。

先谢谢

0 个答案:

没有答案