【发布时间】:2015-06-11 23:58:50
【问题描述】:
所以 我有这个控制器用于交换语言
app.controller("langCtrl",['$scope','$route',function($scope,$route){
this.swap_lang = function(){
if(lang == "tr"){
lang = "en";
}else{
lang = "tr";
}
console.log(lang);
this.lang = lang;
//$route.reload();
//$scope.$apply();
};
}]);
下面这个应该是负责根据全局变量语言调出菜单(带有短语言代码的JSON文件) > 外角
var lang = "en";
app.controller("menusCtrl",['$http','$scope',function($http,$scope){
$scope.test = lang;//for testing
var these_menu = this;
these_menu.links = [];
these_menu.titles = "";
$http.get("menu-" + lang + ".json").success(function(data){
these_menu.links = data[0].menus;
console.log("Menus are here!");
console.log(these_menu.links[2].sub_menus[1]);
});
}
lang 变量交换了,但是 menusCtrl 没有刷新! :(
如何用新数据更新视图,如何让我的控制器用新数据重新加载视图,我试过 reload 和 apply 但没有运气
PS : 控制台打印短语言代码后点击从 查看
【问题讨论】:
-
也许你应该看看angular-translate你可以声明json文件,然后用$translate.use(key);其余的会自动更新!
-
感谢您的建议,我会考虑在以后的应用中使用它,但我想要一个简单的解决方案:)
标签: javascript angularjs view routes scope