好吧,所以我有一个从API发送的对象数组,它显示索引位置,但我希望对象键和值而不是索引位置,我认为Im映射对象键错误,有人可以帮忙吗
getFav(): void {
this.Shared.getFav().subscribe(
data => {
this.fave = data.message;
Object.keys(this.fave).map((keyName) => {
return {id: keyName, product: this.fave[keyName]};
});
}
);
}
<div class="uk-width-small" uk-dropdown>
<div class="uk-dropdown-grid uk-child-width-1-1@m" uk-grid>
<div *ngFor="let fav of fave | keyvalue" >
<span>{{fav.value}}</span>
<span>{{fav.key}}</span>
<a href="{{fav.key}}"><li>Buy On amazon<br/>
</li></a>
</div>
</div>
</div>
答案 0 :(得分:0)
问题是您在整个数组上使用了Object.keys()
,它没有任何键,因此只给您返回索引和对象。您需要对数组中的每个对象执行此操作,以使其按您希望的方式工作。
答案 1 :(得分:0)
也许您需要更改此功能getFav
let newFaves=[]; //declare global var like this on the top of ts file
getFav(): void {
this.Shared.getFav().subscribe(
data => {
this.fave = data.message;
this.newFaves =this.fave.map((item) => {
return {id: item.id, product: item.title};
});
}
);
}
然后在您的html中
<div class="uk-width-small" uk-dropdown>
<div class="uk-dropdown-grid uk-child-width-1-1@m" uk-grid>
<div *ngFor="let fav of newFaves | keyvalue" >
<span>{{fav.value}}</span>
<span>{{fav.key}}</span>
<a href="{{fav.key}}"><li>Buy On amazon<br/>
</li></a>
</div>
</div>
</div>
答案 2 :(得分:0)
fav.value是一个对象!您仍然必须确定要退还的钥匙 可能是:fav.value.id或fav.value.title
<div class="uk-width-small" uk-dropdown>
<div class="uk-dropdown-grid uk-child-width-1-1@m" uk-grid>
<div *ngFor="let fav of fave | keyvalue" >
<span>{{fav.value.title}}</span>
<span>{{fav.key}}</span>
<a href="{{fav.key}}">
<li>Buy On amazon<br/></li>
</a>
</div>
</div>
</div>
答案 3 :(得分:0)
使用keyvalue
管道,您无需更改getFav
。
keyvalue
的值是所有对象(e.g {id: 20, title: '...', image: '...'})
所以您必须告诉您要使用的角度巫婆属性。
<span>{{fav.value.id}}</span>
<span>{{fav.value.title}}</span>
<img [src]="fav.value.image"/>