Как заполнить HTML-таблицу объектом массива объектов через Javascript/JQuery (Ampersand.js/Angular)

Я пытаюсь заполнить таблицу HTML, которая отображает содержимое по категориям. Мне нужно сделать это без использования JQuery Datatables. Поэтому я пытаюсь сделать это с помощью обычной таблицы HTML.

Вот мой Объект массива объектов:

Object {
    Fruits: [
        Apple: { 
           {color: 'red'},
           {healthy: true}
        },
        Orange: {
            {color: 'orange'},
            {healthy: true}
        },
        Grape: {
            {color: 'purple'},
            {healthy: true}
        }
    ],
    Sweets: [
       Candy: {
          {color: 'pink'},
          {healthy: false}
       }
    ],
}

Я пытаюсь заполнить таблицу HTML, которая будет выглядеть примерно так (разделены по категориям):

______________________________________
| Name     |  Color    |   Healthy?  |
--------------------------------------
|Fruits                              | 
--------------------------------------
| Apple     |     Red  |      True   |
|----------------------|--------------
| Orange    | Orange   |      True   |
|----------------------|--------------
| Grape     | Purple   |     True    |
|----------------------|--------------
| Sweets                             |
|-------------------------------------
| Candy    |   Pink    |      False  |
--------------------------------------

Я использую Ampersand.js/Angular. Я отфильтровываю нужные мне данные из коллекции и пытаюсь поместить их в другой объект, чтобы использовать для заполнения таблицы HTML.

Можно ли сделать то, что я пытаюсь сделать? Есть ли более простой способ настроить данные, чем объект массива объектов?

1 ответ

Я не уверен, возможно ли это внутри таблицы, но мы можем создать столбец начальной загрузки и добавить несколько пользовательских CSS, чтобы выглядеть как таблица. Кроме того, вместо нескольких массивов вы можете иметь один массив объектов с дополнительными свойствами типа "тип" и "имя". Ваши текущие данные будут выглядеть так.

$scope.data = [{ name:'Apple', color: 'red', healthy: true, type: 'Fruits'}, { name:'Orange', color: 'orange', healthy: true, type: 'Fruits'}, { name:'Grape', color: 'purple', healthy: true, type: 'Fruits'}, { name:'Candy', color: 'pink', healthy: false, type: 'Sweets'}];

В angularjs вы можете группировать элементы, основываясь на свойстве, если вы включите angular-filter. Помните только orderBy доступен из коробки в угловой. Если вам нужно использовать groupBy Вы должны включить 'angular-filter' в ваше приложение. Подробнее об угловом фильтре вы можете прочитать здесь.

Надеюсь, это поможет jsfiddle.

Другие вопросы по тегам