2014-10-04 135 views
0

你好我是新的角度,我再次有一些帮助。 我试图从一个JSON文件DATAS:teams.json,但它不工作 我的控制器是这样的:AngularJS从JSON读取数据

app.controller('TeamController', ['$http', function($http){ 
    var liste = this; 
    liste.teams = [];  
    $http.get('teams.json').success(function(data){ 
     liste.teams = data; 
    }); 
}]); 

,并在我的html:

<!DOCTYPE html> 
<html ng-app="teamStats"> 

    <head> 
     <link rel="stylesheet" href="style.css"> 
     <script src="script.js"></script> 
     <script src="angular.js"></script> 
     <script src="app.js"></script> 
    </head> 
    <body ng-controller="TeamController"> 
     <!-- 
     %%%%%%%%%%%%%%%%%%%%%%%%%%% BODY CONTENT   
     --> 
     <div id="wrap" > 
       <div class="container"> 
        <div > 
         <ul> 
          <li ng-repeat="team in liste.teams">{{team.name + team.win}}</li> 
         </ul> 
        </div> 
       </div> 
     </div>   
     <!-- 
     %%%%%%%%%%%%%%%%%%%%%%%%%%% END OF BODY CONTENT  
     --> 
    </body> 
</html> 

提前感谢!希望有人看到我错了 我做了plunker为了便于理解的 myPlunker

最好的问候, 文森特

回答

0

好吧,我想我现在知道为什么它不工作! ng-repeat,ng-view,ng-include等都使用AJAX加载模板。问题是浏览器默认情况下不允许AJAX请求位于本地文件系统上的文件(出于安全原因)。因此,你有两个选择:

运行本地Web服务器,这将有助于您的文件 告诉你的浏览器,允许本地文件访问

感谢您的帮助!全部感谢Vadim的解释!并且非常感谢zsong! :)

1

控制器更改为这个

app.controller('TeamController', ['$http', '$scope', 
    function($http, $scope) { 
     var liste = this; 
     $scope.liste = {}; 
     $scope.liste.teams = []; 
     $http.get('teams.json').success(function(data) { 
     $scope.liste.teams = data; 
     }); 
    } 
    ]); 

并修复您的JSON文件。您需要删除其他,小号

演示:http://plnkr.co/edit/jeHnvykYLwVZLsRLznRI?p=preview

+0

为什么你不能''scope.liste = {teams:[]};'开玩笑! :) – PSL 2014-10-04 04:53:52

+0

嗨,感谢您的帮助! :)我尝试了我的HTML在笨蛋,现在工作!但是我仍然在localhost遇到问题......我的网页是空白的。我认为wamp正在做一些不好的事情...... – Vincent 2014-10-04 09:11:22