2014-08-31 72 views
0

两个不同的JSON我想知道如何加载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; 
      }); 

     } 

    }]) 

变量传递给郎但JSON不加载,如果郎== 2

我想加载data.json如果english和data_ar.json为阿拉伯语。我做这个锚标记的点击

+3

你能告诉我们在哪儿了'lang'定义? – 2014-08-31 11:09:36

+1

\t \t change language Christina 2014-08-31 11:25:18

回答

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和与该功能相关的控制器代码,以便我可以看到,你犯了什么错误。

+0

感谢所有的答复。不幸的是它仍然没有工作。 – Christina 2014-09-01 05:13:23

+0

可否请你告诉我,如果你有任何错误? – 2014-09-01 06:36:17

+0

它总是加载data.json,即使lang = 1或2.用户点击阿拉伯语按钮,它应该重新加载myCtrl控制器,以便它将检查lang是1或2。但在我的情况下,它不重新加载,请请帮助 – Christina 2014-09-01 08:13:05

1

我想你已经在HTML页面中定义了lang。确保定义包含ng-controller="myCtrl"属性的元素。 现在使用的if ($scope.lang==2)代替if (lang==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; }