2016-05-30 4 views
2

У меня возникла проблема с получением данных от ng-repeat.AngularJS ng-repeat получить данные от JSON

<tr ng-repeat="x in records"> 
    <td>{{x.id}}</td> 
    <td>{{x.title}}</td> 
    <td>{{x.year}}</td> 
    <td>{{x.note}}</td> 
</tr> 

The {{x.id}} является tt0013158 я хочу получить от JSON.

Вот JSON:

{"result":{ 
    "tt0013158":{ 
     "note":"", 
     "title":"The Frozen North", 
     "year":"1922" 
    }, 
    "tt1605783":{ 
     "note":"", 
     "title":"Midnight in Paris", 
     "year":"2011" 
    } 
}} 

я могу получить ноту, название и год правильно. Но как я могу получить идентификатор (например, tt0013158) от JSON?

ответ

3

Там нет понятия в JavaScript (или угловом), что tt0013158 в образце выше будет идентификатором объекта. Это всего лишь ключ на карте.

Я считаю, что это следует сделать трюк:

<tr ng-repeat="(key, x) in records.result"> 
    <td>{{key}}</td> 
    <td>{{x.title}}</td> 
    <td>{{x.year}}</td> 
    <td>{{x.note}}</td> 
</tr> 
+0

Thankyou. Это полезно! – JohnnyTrous

1

вам нужно использовать (ключ, значение) синтаксис:

<tr ng-repeat="(key, value) in data in records.result"> 
    <td>{{key}}</td> 
    <td>{{value.id}}</td> 
    <td>{{value.title}}</td> 
    <td>{{value.year}}</td> 
    <td>{{value.note}}</td> 
</tr> 
0

Вы можете использовать следующий подход к перебирать нг-повторить

<tr ng-repeat="item in records"> 
<td>{{item.id}}</td> 
<td>{{item.note}}</td> 
<td>{{item.title}}</td> 
<td>{{item.year}}</td> 
</tr> 
Смежные вопросы