从嵌套的JSON对象获取数据!!带ID' S !!使用角度GET

时间:2015-06-23 22:27:19

标签: javascript json angularjs

我是Angular / JSON对象的新手,我试图从嵌套对象中获取内容。

这不是那么难,但问题是JSON对象有动态变化。

下面是一个完整的JSON对象列表中的1个对象的示例。正如你可以看到一个更大的对象的这一部分。

我想要的是ng-repeat中每个任务的task.assignment.name,但由于赋值和名称之间的整数,我无法进入assignment.name。

  

看看我的对象:

{
"project-45": {
    "label": "Bar",
    "url": "http://someurl.com/api",
    "assignments": {
      "5147": {
         "id": 5147,
         "type": "Task",
         "project_id": 45,
         "assignee_id": 9,
         "label_id": 27,
         "category_id": 0,
         "milestone_id": 0,
         "name": "assignmentname",
         "body": "<p>body.</p>",
         "created_on": "2015-06-17 13:40:31",
         "age": 6,
         "created_by_id": 66,
         "created_by_name": "Jelle",
         "created_by_email": "jelle@example.com",
         "due_on": "2015-06-19",
         "priority": 0,
         "task_id": 81,
         "project": "Bar"
         }
      }
   }
}
project-75": {
    "label": "Another",
    "url": "http://mijn.example.com/api",
    "assignments": {
        "5153":
...
  

这是我的控制者:

var main = angular.module("main", []);

    main.controller("mainCntrl", function($scope, $http){

        var apiUrl = "http://my.example.com/api.php?&format=json&";
        var apiKey = "&auth_api_token=somekey";

        var onUserComplete = function(response){
            $scope.user = response.data;
            console.log("User Data loaded");
        }

        var onTasksComplete = function(response){
            $scope.tasks = response.data;
            console.log("Tasks loaded");
        }

        $http.get(apiUrl + "path=my-tasks" + apiKey).then(onTasksComplete);
        $http.get(apiUrl + "path=people/1/users/9" + apiKey).then(onUserComplete);

    }
);
  

最后是带有ng-reapter的index.html文件

<div class=" block full border">
    <h3>Active tasks</h3>
    <ul ng-repeat="task in tasks">
        <li>
            <ul>
                <li>{{$index+1}}</li>
                <li>Project: {{task.label}}</li>
                <li>task name: {{task.assignments.name}}</li> <!-- Doesnt work -->
                <li>task description: {{task.assignments.body}}</li> <!-- Doesnt work -->
            </ul>
        </li>
    </ul>
</div>

谢谢!

1 个答案:

答案 0 :(得分:0)

<div class=" block full border">
    <h3>Active tasks</h3>
    <ul ng-repeat="task in tasks">
        <li>
            <ul ng-repeat="assignment in task.assignments">
                <li>{{$index+1}}</li>
                <li>Project: {{assignment.label}}</li>
                <li>task name: {{assignment.name}}</li> <!-- Doesnt work -->
                <li>task description: {{assignment.body}}</li> <!-- Doesnt work -->
            </ul>
        </li>
    </ul>
</div>