我一直试图解决这个问题一段时间了。无法找到可行的解决方案。
我的目标:我正在尝试将角度转换的值(使用$ 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值为空白,第二个弹出窗口的值为正确值。
如何在全局变量中保存翻译的值以供将来使用?
答案 0 :(得分:2)
您可以使用$ rootScope存储应用中所有控制器通用的变量或数据,这是最方便的方式。
你的控制器应该是这样的:
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;
});
});