为什么我无法从Json文件中检索数据?

时间:2016-04-29 13:54:41

标签: javascript html angularjs json

我试图从我的json文件中获取一个小型测试项目的数据。我在开发人员工具中没有收到任何错误,当我在请求后执行console.log(数据)时,我从文件中获取数据。

这是我的角度代码:

var app = angular.module('myApp', []);

app.controller('MainController', ['$scope','$http', function($scope,     $http){
  $scope.todos = [];
  $http.get('db/todos.json')
    .then(function(data){
      $scope.todos = data;

    });
 }]);

这是我的html文件:

<!doctype html>
<html ng-app="myApp">
<head>
<base href="/">
<title>My todo</title>
<link rel="stylesheet"  href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  <script src="https://code.angularjs.org/1.5.5/angular.js"></script>
  <script src="/js/app.js"></script>
</head>
<body>
  <div class="container" ng-controller="MainController">
     <div class="row">
     <h1>Your todos</h1>
     <li ng-repeat="todo in todos">
        {{ todo.name }}
      <li>
    </div>
  </div>
</body>
</html>

在我的网站中,ng-repeat只打印出六个要点,这是错误的,因为我的json文件中只有两个条目。这也是我从console.log(数据)获得的:

Object {data: Object, status: 200, config: Object, statusText: "OK"}
config: Object
data:Object
headers:(name)
status:200
statusText:"OK"
__proto__:Object

关于我可能错过的任何想法?

1 个答案:

答案 0 :(得分:3)

使用.then时,实际响应数据位于response.data,因此如果您更改代码,则代码可以正常运行:

.then(function(response){
    $scope.todos = response.data;
});