我想知道如何根据条件加载2个不同的json
.controller("myCtrl", ['$scope','$http', function($scope, $http) {
if (lang==1){
$scope.myVariable = [];
$http.get('json/data.json').success (function(data){
$scope.myVariable = data;
});
}
else if (lang==2){
$scope.myVariable = [];
$http.get('json/data_ar.json').success (function(data){
$scope.myVariable = data;
});
}
}])
变量传递给lang但json没有加载,如果lang == 2
我想加载data.json如果是english和data_ar.json为阿拉伯语。我点击锚标记
这样做答案 0 :(得分:1)
请将以下代码放在任何类似的方法中:
.controller("myCtrl", ['$scope','$http','$rootScope','$route', function($scope, $http,$rootScope,$route) {
if ($rootScope.lang==1){
$scope.myVariable = [];
$http.get('json/data.json').success (function(data){
$scope.myVariable = data;
});
}
else if ($rootScope.lang==2){
$scope.myVariable = [];
$http.get('json/data_ar.json').success (function(data){
$scope.myVariable = data;
});
}
$scope.loadData=function(lang){
$rootScope.lang=lang;
$route.reload();
}
}])
和html代码:
<a ng-click="loadData(2)">arabic formate</a>
或者您已经这样做了然后请发布与该功能相关的完整html和控制器代码,以便我可以看到您在哪里犯了错误。
答案 1 :(得分:1)
我想,您已在HTML页面中定义了lang
。确保定义包含具有ng-controller="myCtrl"
属性的元素。
现在使用if ($scope.lang==2)
代替if (lang==2)
答案 2 :(得分:1)
您在lang
切换脚本中定义了另外的lang
个变量。所以改变:
if(lang==1){ var lang=2; } else if(lang==2){ var lang=1; }
为:
if(lang==1){ lang=2; } else if(lang==2){ lang=1; }