ng-repeat Angular和JSON数组

时间:2014-11-24 22:08:35

标签: arrays json angularjs angularjs-ng-repeat

我是Angular的新手,我正在尝试设置一个简单的显示器。我查看了ng-repeat上的文档,并且每次都成功完成了一些教程。但是,当我去做我自己的模拟时,我无法从JSON文件中显示任何内容。即使使用经常发现的Angular“todo.json”示例,我仍然无法想到这一点。我不确定它是否必须使用JSON或可能嵌套ng-repeat。任何人都可以指导我看到光明吗?!呵呵。提前谢谢。

所以,这是Plunker链接。 http://plnkr.co/edit/8rNgPHUHEe88Gpw6aM1D

HTML:

    <!doctype html>
<html ng-app="App" >
<head>
  <meta charset="utf-8">
  <title>Todos $http</title>
  <link rel="stylesheet" href="style.css">
  <script>document.write("<base href=\"" + document.location + "\" />");</script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js"></script>
  <script src="app.js"></script>
</head>
<body ng-controller="Calendar">
  <ul>
    <li ng-repeat="items in events">
      {{items.events}}
    </li>
  </ul>
</body>
</html>

JS:

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

App.controller('Calendar', function($scope, $http) {
  $http.get('todos.json')
       .then(function(res){
          $scope.events = res.data;                
        });
});

JSON:

[
    {
        "events": [
            {
                "EventTitle": {
                    "href": "http://example.com/event1",
                    "text": "HEADLINE TEXT FOR EVENT 1"
                },
                "HeadlineImage": {
                    "href": "http://example.com/event1",
                    "src": "http://example.com/Image.jpg",
                    "text": "CAPTION TEXT FOR IMAGE "
                },
                "Eventdescription": "Lorem Loreem Loreeem Ipsum Ipsuum Ipsuuum ..."
            }
        ]
    }
]

2 个答案:

答案 0 :(得分:2)

您的数据结构非常奇怪。检查更新的工作人员:http://plnkr.co/edit/SXHjqxjZ2bgJSs327jz4?p=preview

您可以在视图中使用<pre>{{ events | json }}</pre>轻松检查/调试对象。<​​/ p>

答案 1 :(得分:1)

如果你必须保留这种结构,那么你需要做这样的事情

<ul>
  <li ng-repeat="items in events">
    <a href="{{items.EventTitle.href}}">{{items.EventTitle.text}}</></a>
  </li>
</ul>

控制器:

App.controller('Calendar', function($scope, $http) {
  $http.get('todos.json')
       .then(function(res){
          $scope.events = res.data[0].events;             
        });
});

这是forked plunker

编辑: The revised plunker,使用上述更改。范围var应为res.data.events

在提供新的json结构后更新: Here's一个包含实际json数据的工作示例