javascript - 如何通过 Angular 翻译将翻译值存储在全局变量中

标签 javascript angularjs

一段时间以来,我一直在努力解决这个问题。无法真正找到可行的解决方案。

我的目标:我正在尝试将 Angular 平移的值(使用 $translate 完成)分配给全局变量,以便稍后可以将其用于动态变量值分配。翻译包含在一个 json 文件中,并在 angular.module(..).config(..) 中配置

我的js文件:

angular.module('myApp').controller('MyCtrl',
    function ($translate, $scope) {
        var temp_text='';
        $translate(['Text1']).then(function (translations) {
            temp_text=translations.Text1;
            alert(temp_text);
        });
        alert(temp_text);

});

问题是第一个弹出窗口的 temp_text 值为空,第二个弹出窗口的值为正确值。

如何将翻译的值保存在全局变量中以供将来使用?

最佳答案

您可以使用 $rootScope 来存储应用程序中所有 Controller 通用的变量或数据,这是最方便的方法。

你的 Controller 应该是这样的:

angular.module('myApp').controller('MyCtrl',
function ($translate, $scope,$rootScope) {
    var temp_text='';
    $translate(['Text1']).then(function (translations) {
        temp_text=translations.Text1;
        $rootScope.myGlobalVariable=temp_text;
    });

});

这是一个working demo

关于javascript - 如何通过 Angular 翻译将翻译值存储在全局变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35838537/

相关文章:

javascript - 使用 $translate 时获取所选语言

javascript - 在 AngularJS 1.6 中悬停时在 md-select/md-options 上显示图像/背景

javascript - $timeout 的行为有所不同

javascript - 使用 jquery load 动态加载页面

javascript - 当我使用 bootstrap 4 时,为什么粘性 header 在表单标签中不起作用?

javascript - 嵌套函数如何在稍后访问 Javascript 中的变量而无需声明?

javascript - 没有 ng-animate 的 Angular 动画,可能吗?

javascript - DIV 'inline-block' 或无使用复选框不起作用

angularjs - 我们可以使用 "filter"s 之外的 $sce.trustAsHtml(string) 吗?

AngularJS 在只读字段中格式化日期