Создание html-элементов в ngRepeat в зависимости от свойств объекта

0

У меня есть массив объектов, которые имеют две области, например:

var array = [{type:"range", group:"group1"}, {type:"boolean", group:"group1"}, 
 {type:"input", group:"group3"}... ]

Теперь в HTML, итерируя через массив, я хочу создать div для каждой группы GROUP и поместить все элементы в эту группу внутри. Но, полагая, что я имею в виду создание Входов или Радиобутов или Выпадающих в зависимости от ТИПА элемента.

Теперь я сделал это, используя AngularJS и в основном JS, добавляя объекты к существующим и так далее. Но я хочу как можно уменьшить использование js, потому что у меня возникает проблема с вызовом функции после загрузки HTML (функция вызова после загрузки HTML AngularJS).

Поэтому я буду благодарен, если кто-нибудь даст мне совет, как это должно выглядеть в основном в html. Я представляю себе что-то вроде этого:

<div ng-repeat="object in array track by $index">
  //if object.group div exists add to existing one (check maybe with js function ?)
     // if object.type is ... add ... 
     // else if objec.type is ... add ...
     ...
  //else object.group not exists create div with id object.group for example
     // if object.type is ... add ...
     // else if object.type is ... add ...
     ...

1 ответ

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

Это должно работать на ваш случай:

<div ng-repeat="(key, value) in array | groupBy: 'group'">
  Group: {{key}}
    <div ng-repeat="object in value">
      <div ng-switch on="object.type">
        <div ng-switch-when="range">Range block</div>
        <div ng-switch-when="boolean">Boolean block</div>
        <div ng-switch-when="input">Input block</div>
      </div>
    </div>
  <br>
</div>

Первые элементы групп циклов, второй будет работать с элементами в группе

  • 0
    Спасибо выглядит законно.

Ещё вопросы

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