2015-07-03 3 views
1

Я использую угловой для извлечения данных из веба-службы, данные в формате JSON:Перебора вложенного массива JSon с угловым

{ 
    "items": [{ 
     "id": 2, 
     "catId": 1, 
     "content": "ddddddddddddddddd", 
     "type": 0, 
     "comments": [{ 
      "id": 0, 
      "postId": 0, 
      "userId": 0, 
      "content": "nincompoop", 
      "ptime": "2015" 
     }, { 
      "id": 0, 
      "postId": 0, 
      "userId": 0, 
      "content": "lol", 
      "ptime": "2015" 
     }], 
     "Likes": [] 
    }, { 
     "id": -1, 
     "catId": 1, 
     "content": "first post", 
     "type": 0, 
     "comments": [{ 
      "id": 1, 
      "postId": 0, 
      "userId": 0, 
      "content": "first Comment", 
      "ptime": "2015" 
     }], 
     "Likes": [{ 
      "id": 1, 
      "name": "Rawhi" 
     }] 
    }] 
} 

Также пользователь ID хранится в яваскрипте параметра, как может Я перебираю «item.likes» для каждого сообщения и определяю, существует ли идентификатор пользователя? спасибо

+0

использовать 'javascript' для этого или вы хотите использовать в' template' use 'ng-Repeat' –

ответ

2

Предполагая, что ваш JSON находится в переменной называется rawhi:

angular.forEach(rawhi, function (item, key){ 
    angular.forEach(item, function(comment, index){ 
     comment.userId //you can check if this exists 
     //iterate over the likes array: 
     angular.forEach(comment.Likes, function (like, i){ 
      like //you can do whatever you want to do with this 
     }); 
    }); 
}); 

В принципе, вы можете использовать вложенные циклы foreach для перебора массивов в вашем JSON.

0

forEach.item.Likes(function(prop){ alert(prop) });

или в то время как внутри ваших угловых контроллеров просмотра вы можете использовать директиву ngRepeat перебрать это, однако, вам нужно будет убирать этот объект, прежде чем любой из них будет работать. Также возьмите проклятие из своего кода!

Смежные вопросы