У меня есть проект Angular 2, и я получаю список результатов, которые я хотел бы отображать как группы в пользовательском интерфейсе. Я хотел бы сгруппировать по одному из возвращаемых значений и показать детали для элементов в группе.Как сгруппировать данные и выводить их в шаблон Angular 2 - используя трубу?
В настоящее время я попытался выполнить это, используя this groupby pipe, но у меня возникли проблемы с его работой в шаблоне.
Я попытался это:
<ion-list>
<div *ngFor="let item of searchresults | orderBy:'item[0]'">
<ion-item-divider sticky>{{ item[2] }}</ion-item-divider>
<ion-item (click)="itemTapped($event, item)">{{ item[0] }}</ion-item>
</div>
</ion-list>
в API возвращает:
{"results":[
["Chocolade vlokken melk pak 300 gram ","8710400407010","Albert Heijn","Hagelslag",1,2,"","701",""],
["Chocolade vlokken puur pak 300 gram ","8710400406990","Albert Heijn","Hagelslag",1,1,"","701",""],
["Chocoladevlokken melk pak 300 gram (Kiekeboe) ","23029217","Aldi","Hagelslag",1,2,"","612",""],
["Chocoladevlokken puur pak 300 gram (Kiekeboe) ","23029217","Aldi","Hagelslag",1,2,"","612",""],
], "api_version": 0,2}
Можете ли вы также привести пример машинописи? Это было бы прекрасно! –
Я попробовал это и получил его работу: 'const groupedResults = [myData.results.reduce ((hash, result) => { this.group = result [2]; const currentGroup = hash.get (this.group) || {items: []}; currentGroup.items.push (результат); return hash.set (this.group, currentGroup); }, новая карта) .values ()]; 'единственное, что не работает это 'hash.get (this.group) || {this.group, items: []}; 'поэтому мне пришлось заменить это на hash.get (this.group) || { Предметы: [] }; 'идея как исправить? –
@MaartenHeideman, я добавил, что Plunkr, с более простым для выполнения кода для преобразования, в TypeScript, а также с некоторым примером вывода и быстрым примером, который позволяет динамически изменять группировку. –