如何使用Angular 8 keyvalue并与复杂对象进行比较
我有这个东西如何使用Angular 8 keyvalue并与复杂对象进行比较,angular,Angular,我有这个东西 { "id": 1, "paragraphText": "I'm some Paragraph Text", "paragraphName": "new paragraph", "paragraphPlacement": { "id": 1, "order": 1 } } { "id": 1, "paragraphText": "I'm another Paragraph Text", "paragraphName": "ol
{
"id": 1,
"paragraphText": "I'm some Paragraph Text",
"paragraphName": "new paragraph",
"paragraphPlacement": {
"id": 1,
"order": 1
}
}
{
"id": 1,
"paragraphText": "I'm another Paragraph Text",
"paragraphName": "old paragraph",
"paragraphPlacement": {
"id": 1,
"order": 2
}
}
我正在尝试使用keyvalue管道对其进行排序
<div class="col-8">
<div *ngFor="let paragraph of offer.offerContent.paragraphs | keyvalue">
{{paragraph.paragraphName}} : {{paragraph.paragraphPlacement.order}}
据我所知,keyvalue需要一个key:value映射,但是angular文档说可以使用comparefn来比较复杂的对象,但是我找不到任何关于如何使用comparefn的文档或示例。因此,我的问题是如何使用comparefn在段落Placement:order value上对上述示例进行排序。要获得预期的结果,请使用下面的选项,将键和值对与comparefn一起使用 问题: 在使用keyValue管道时,请使用paragration.value访问每个对象
<div *ngFor="let paragraph of obj | keyvalue">
{{paragraph.value.paragraphName}} :
{{paragraph.value.paragraphPlacement.order}}
<div>
若要按值对对象进行排序,请通过比较值使用下面的比较函数,并在比较相等值时返回1、-1和0
sortOrder = (old, nw) => {
if(old.value.paragraphPlacement.order < nw.value.paragraphPlacement.order){
return 1
}else{
return -1
}
}
component.html:
工作代码示例
<div *ngFor="let paragraph of obj | **keyvalue** : **sortOrder**">
{{paragraph.value.paragraphName}} : {{paragraph.value.paragraphPlacement.order}}
<div>