2014-09-12 2 views
0

Ну, сегодня у меня есть новая проблема. Я пытаюсь взять несколько массивов этого json.Множество массивов Angularjs с json

[{ "_id": "541200a79fb6706de9164063", "Индекс": 0, "справы": "403d5692-0f07-40e6-84f5-32cdee137127", "IsActive": правда, "школа" : «BOILICON», «адрес»: «532 Everit Street, Williamson, Kentucky, 197», «зарегистрировано»: «Понедельник, 24 марта 2014 года 4:46 утра», «профессор»: [{"id": 0 , "name": {"first": "Mclean", "last": "Robertson"}, "email": "[email protected]", "age": 36, "phone": " +1 (946) 436-2567 "," coursePrice ":" $ 4,882.28 "," favoriteParadigm " :" funcional "}]}

Ну я пытался это сделать, как это на HTML код:

$<div ng-controller="studentsController"> 
    <table>  
     <tr ng-repeat= "student in data.students"> 
      <td>{{student.index}}</td> 
      <td>{{student.guid}}</td> 
      <td>{{student.isActive}}</td> 
      <td>{{student.school}}</td> 
      <td>{{student.address}}</td> 
      <td ng-repeat="prof in data.students.professor"> 
       email: {{prof.email}} 
      </td> 
     </tr> 
    </table> 
</div>$ 

Но это не работает для меня. Кто-нибудь может мне помочь?

+0

json здесь неверен. Это причина? – V31

+0

Недопустимый json, который вы пропустили в этой последней квадратной скобке. – Kiee

+0

Ну, я не уверен, что это ссылка json [link] (https://api.mongolab.com/api/1/databases/avantica-test/collections/parcial -uno?apiKey = 12KfjNX97_amx0iUdS2I_eitAy3jSaOb) –

ответ

0

Изменение prof in data.students.professor к prof in students.professor так ранее вы определили student in data.students так, что student воля содержит professor детали внутри

Попробовать это

Working Demo

<div ng-app='myApp' ng-controller="studentsController"> 
    <table border="1"> 
     <tr ng-repeat="student in students"> 
      <td>{{student.index}}</td> 
      <td>{{student.guid}}</td> 
      <td>{{student.isActive}}</td> 
      <td>{{student.school}}</td> 
      <td>{{student.address}}</td> 
      <td ng-repeat="prof in student.professor">email: {{prof.email}}</td> 
     </tr> 
    </table> 
</div> 
1

в пределах ng-repeat у вас есть разный объем, и текущий элемент напрямую доступен. Меняем

<td ng-repeat="prof in data.students.professor"> 

к этому:

<td ng-repeat="prof in student.professor"> 
    email: {{prof.email}} 
</td> 
0

Пара вещей в постановке задачи,

  1. Прежде всего, вам нужно, чтобы избежать дубликатов, так есть трек экспрессией в вашей нг-повтора.
  2. Поскольку вы храните json в строке, вам нужно разобрать его на JSON, используя JSON.parse.
  3. Так же, как то, что @Zaheer упоминается, так как вы должны ссылаться на внешний нг-повторить вам необходимо обратиться к студенту вместо профессора в data.students.professor

Так что ваш код будет выглядеть следующим образом:

HTML:

<div ng-app> 
    <table ng-controller="test"> 
     <tr ng-repeat="student in data.students track by $index"> 
      <td>{{student.index}}</td> 
      <td>{{student.guid}}</td> 
      <td>{{student.isActive}}</td> 
      <td>{{student.school}}</td> 
      <td>{{student.address}}</td> 
      <td ng-repeat="prof in student.professor track by $index">email: {{prof.email}}</td> 
     </tr> 
    </table> 
</div> 

JS:

function test($scope) { 
    $scope.data = {}; 
    var students = '[ { "_id" : "541200a79fb6706de9164063" , "index" : 0 , "guid" : "403d5692-0f07-40e6-84f5-32cdee137127" , "isActive" : true , "school" : "BOILICON" , "address" : "532 Everit Street, Williamson, Kentucky, 197" , "registered" : "Monday, March 24, 2014 4:46 AM" , "professor" : [ { "id" : 0 , "name" : { "first" : "Mclean" , "last" : "Robertson"} , "email" : "[email protected]" , "age" : 36 , "phone" : "+1 (946) 436-2567" , "coursePrice" : "$4,882.28" , "favoriteParadigm" : "funcional"} ]}]'; 
    $scope.data.students = JSON.parse(students); 
} 

Working Fiddle

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