Как выполнить итерацию коллекции json с помощью ng repeat angularjs

0

Мой сервис дает ниже json результат

 {"categories":[{"category_id":"20","name":"Desktops"},  {"category_id":"18","name":"Laptops &amp},{"category_id":"25","name":"Components"},
{"category_id":"57","name":"Tablets"},
{"category_id":"17","name":"Software"},
{"category_id":"24","name":"Phones} ]}

это мой html-код:

    <tr ng-repeat="menu in menuitems">
    <td>
        {{menu.name}}
    </td>

в контроллере я заполняю $scope.menuitems результатом json

Я не могу отобразить список имен в html. Если я пишу {{menu[0].name}} я получаю одну запись. Что я делаю неправильно, что я не могу перебирать json-коллекцию.

3 ответа

1
Лучший ответ

Директива ng-repeat работает над массивом.

Итак, в вашем случае menuitems - это переменная, в которой вы храните ответный json-объект.

Ваша структура json показывает, что она содержит categories объектов массива.

Поэтому, чтобы ng-repeat работал, вам необходимо передать в него menuitems.categories.

Выражение:

<tr ng-repeat="menu in menuitems.categories">
<td>
    {{menu.name}}
</td>
1

Он находится внутри объекта. Итак, вы должны использовать,

 <tr ng-repeat="menu in menuitems.categories">
<td>
    {{menu.name}}
</td>
0

Вы должны перебирать все объекты и отслеживать их. Я не знаю о вашем контроллере, но попробуйте добавить эту строку кода

ng-repeat="menu in menuitems track by $index

Ещё вопросы

Сообщество Overcoder
Наверх
Меню