Ivan-P
@Ivan-P

Как управлять выводом в ng-repeat из другого ng-repeat?

Есть масив обьектов свойства которого нужно вывести в таблице.
<tr ng-repeat="item in mainData.items">
    <td>{{item.name}}</td>
    <td>{{item.category}}</td>
    <td>{{item.importance}}</td>
   <td>{{item.status}}</td>
</tr>

Но свойства будут увеличиваться и не всегда их все нужно выводить. Я хочу добавить управляющий массив со списком необходимых для вывода свойств:
<tr ng-repeat="item in mainData.items">
   <td ng-repeat="prop in mainData.itemProps">{{item.prop}}</td>
</tr>


Получаются пустые ячейки. Что я делаю не так?
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Как управлять выводом в ng-repeat из другого ng-repeat?


ngRepeat это декларативный примитив, вы "управлять" через него ничем не можете и вообще не должны хотеть.

Вы должны управлять данными, которые вы пихаете во viewmodel ($scope). И только так. То есть по изменению управлящего массива в js формируем новую табличку и ng-repeat просто эту табличку выводит. Все просто и понятно, легко дебажить, минимум кода.
Ответ написан
Комментировать
@Glimor
develop
<tr ng-repeat="item in mainData.items">
   <td ng-repeat="prop in mainData.itemProps">{{item.prop}}</td>
</tr>

как по мне, то это хрень. Если тебе надо выводить определенные свойства, а при нажатии на кнопку (или другом действии), выводить дополнительные свойства, то пользуйся дерективами ng-show, ng-hide.
Ответ написан
streetflush
@streetflush
{{item[prop]}} ??
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы