我写了一个Angular模块进行翻译。此模块已成功使用我们的两个应用程序,但未使用新应用程序。
我们的新应用程序控制器就是这样 -
var app2 = angular.module("test", ["ngCookies", "Tranlater"]);
app2.controller("company", function ($scope, $cookies, $rootScope, translationService) {
$rootScope.currentLanguage = $cookies.SelectedLanguage;
translationService.getTranslation($rootScope.currentLanguage, function (data) {
$scope.translation = data;
});
});
我尝试在视图中访问此翻译对象
{{translation.ChooseCompany}}
与我们的其他申请一样。 但它没有显示任何值:(
但是当我用angular调试器控制台检查范围时,它会显示 $ scope.translation 对象的值
翻译服务:
this.getTranslation = function (language, callback) {
if (language === undefined) {
language = "en";
}
var languageFilePath = '/translation_' + language + '.json';
if (!me.cache[language]) {
$.ajax({
type: 'get',
url: languageFilePath,
async: true,
success: function (data) {
me.cache[language] = data;
if (typeof callback === "function")
callback(me.cache[language]);
},
error: function (data) {
console.log(data);
}
});
} else {
if (typeof callback === "function")
callback(me.cache[language]);
}
};
答案 0 :(得分:0)
问题在于$ scope。$ apply();
$rootScope.currentLanguage = $cookies.SelectedLanguage;
translationService.getTranslation($rootScope.currentLanguage, function (data) {
$scope.translation = data;
$scope.$apply();
});
这是解决方案