2015-06-23 42 views
0

Im有點新的Angular/JSON對象,我試圖從嵌套的對象中獲取一些東西。從嵌套的JSON對象獲取數據!!帶ID!使用角度GET

這並不難,但問題在於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": "[email protected]", 
     "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> 

謝謝!

+0

只是關於JSON vs對象的說明:JSON是一個字符串,而不是一個對象,因此它的縮寫** ** ** ** ** S ** cript ** O ** ** ** N **選擇。你所擁有的是口語上被稱爲POJO或** P ** lain ** O ** ld ** J ** avaScript ** O ** bject。他們是不同的。前者是一種類似於YAML或XML的數據交換格式,而後者是具有屬性和值的實際對象。 –

+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> 
+0

謝謝!這是Angular的事情。我一直在想比它更復雜:) –