2016-04-10 3 views
-3

JSON моего JSON выглядеть нижеAngularJS нг-повторы с вложенной

$scope.peoples = [people:{ 
    name: 'Mike ', 
    age: 20 
}, people:{ 
    name: 'Peter S ', 
    age: 22 
}]; 

Примечание: я не могу изменить JSon структуры.

вот мой код, где ng-repeat не удалось прочитать json.

<div ng-controller="MyCtrl"> 
    <table class="table table-hover"> 
     <tr ng-repeat="p in peoples"> 
      <td> Name: {{ p.name }} &nbsp;</td> 
      <td> Age: {{ p.age }} &nbsp;</td> 
     </tr> 
    </table> 

</div> 

var app = angular.module('myApp', []); 

function MyCtrl($scope) { 
    $scope.peoples = [people:{ 
     name: 'Mike ', 
     age: 20 
    }, people:{ 
     name: 'Peter S ', 
     age: 22 
    }]; 
} 
+0

Я не понимаю "** я не могу изменить структуру JSon **", если вы в консоли 'вар A = [люди { название: 'Mike', возраст: 20 }, люди: { имя: 'Peter S', возраст: 22 }]; 'вы получаете ** Uncaught SyntaxError: Неожиданный токен: (...) **. Это похоже на ожидание 'if x == 3> 4', потому что вы не можете изменить оператор if –

ответ

1

Похоже, ваш массив JSON определяется неправильно:

$scope.peoples = [{ 
     name: 'Mike ', 
     age: 20 
    },{ 
     name: 'Peter S ', 
     age: 22 
    }]; 

уведомление там не приемлю ни людей. вы определили людей без объекта. Если вы исправите свой json, ваш код будет работать нормально.

Вот рабочий код с JSon затруднительного: http://jsfiddle.net/Lvc0u55v/2236/

Другой способ фиксации существующего кода с людьми объект является, вы перемещаете людей в JavaScript объект, как показано ниже:

Javascript:

$scope.peoples = [{ 
    people : { 
     name: 'Mike ', 
     age: 20 
    }},{ 
    people: { 
     name: 'Peter S ', 
     age: 22 
    }}]; 

Html:

<td> Name: {{ p.people.name }} &nbsp;</td> 
    <td> Age: {{ p.people.age }} &nbsp;</td> 

Таким образом, вы можете использовать объект people. Вот рабочий код: http://jsfiddle.net/Lvc0u55v/2237/

В целом, я бы рекомендовал использовать первый подход вместо второго.

+0

Я знаю, если я удалю людей, тогда это сработает. но в вашем js скрипке u не использовал p.people.name. поэтому, пожалуйста, используйте его в jsfiddle. – Thomas

+0

см. Свою скрипку http://jsfiddle.net/Lvc0u55v/2238/ не работает, когда я использую 'p.people.name' – Thomas

+0

checkout 2nd solution: http://jsfiddle.net/Lvc0u55v/2237/ вам необходимо определить люди под объектом для углового ng-repeat, чтобы понять. – insomiac

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