У меня есть массив объектов, которые имеют две области, например:
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 ...
...
Это должно работать на ваш случай:
<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>
Первые элементы групп циклов, второй будет работать с элементами в группе