AngularJS повторяющихся динамических столбцов

0

Поэтому у меня есть список продуктов; их столбцы динамически изменяются, кроме двух. Всегда будет столбец идентификатора и столбца имени. Как я могу получить ng-repeat, чтобы показать значения других столбцов, не зная, что они представляют собой до выполнения?

  • 0
    Это всегда лучше объяснить на примере.
  • 0
    Вам это поможет? stackoverflow.com/questions/26377799/...
Теги:
angularjs-ng-repeat

2 ответа

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

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

<html>
<head>
    <link rel="stylesheet" 
</head>
<body ng-app="app" ng-controller="myController as ctrl">
    <table>
        <tr ng-repeat="room in ctrl.rooms | filter: ctrl.expand">
            <td ng-repeat="prop in room.props">
                {{room[prop]}}
            </td>
        </tr>
    </table>

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js "></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js "></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js "></script>
    <script>
        angular.module("app",[]).controller("myController", myController)

    function myController() {
        var vm = this

        vm.rooms = [
            {
                name: 'Room 1',
                floor: 1,
                carpet: "shag"
            },
            {
                name: 'Room 2',
                doors: 2,
                windows: 4
            },
            {
                name: 'Room 3',
                size: "12x12",
                color: "green"
            }
        ];

        vm.expand = function(room) {
        if (!room.props) {
            room.props=[];
            for (var prop in room) {
                if (prop.indexOf("$") != 0  && prop !=="props") {
                    room.props.push(prop)
                }
            }
        }
        return true;
        }
    }
    </script>
</body>
</html>

Без вызова функции вы также можете использовать что-то вроде этого:

<div ng-repeat="room in ctrl.rooms">
    <div ng-repeat='(key, val) in room'>
        <p>{{key}}: {{val}}</p>
    </div>
</div>
0

Не совсем уверен, что вы здесь работаете, но вы можете просеять данные с помощью фильтра и ng-repeat.

Ссылка на SO по этой теме.

Ещё вопросы

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