【发布时间】:2019-07-04 02:00:46
【问题描述】:
我有一个看起来像这样的模板。
<ng-container *ngIf="contactList$ | async as contactList">
<ion-virtual-scroll [items]="contactList">
<ion-item *virtualItem="let c" (click)="openProfile(c)">
<ion-thumbnail slot="start">
<img [src]="c.profilePicture" />
</ion-thumbnail>
<ion-label position="stacked">{{ c.lastNames }}, {{ c.firstNames }}</ion-label>
<ion-label position="stacked">{{ c.mutualFriends[lastNames] }}</ion-label>
</ion-item>
</ion-virtual-scroll>
</ng-container>
根据我如何修改对 observable 的订阅取决于天气与否,我可以看到数组的子数组的对象。在此示例中,c.mutualFriends[name] 是一个包含附加信息的子数组。 mutualFriends 是一个对象数组(示例如下)。
现在在我之前做的组件中:
this.contactService.getContacts().subscribe((users: Contact[]): void => {
this.contactList = users;
});
旁注:我知道通过这种方式,您需要更改上面的模板,以免出错。在这种情况下删除<ng-container>
以这种方式获取值时,c.mutualFriends[lastNames] 中的字符串数组将被列出。以这种方式订阅 observable 后:
this.contactList$ = this.contactService.getContacts();
在模板内,c.mutualFriends[lastNames] 没有列出任何内容。
如何从下面的示例中进行渲染:
contact = {
lastNames: 'Garcia Smith',
firstNames: 'Gabriel',
mutualFriends: [
{
lastNames: 'Llull',
firstNames: 'Ramon',
mutualFriends[],
},
{
lastNames: 'Pereira dos Santos',
firstNames: 'Joāo Maria',
mutualFriends: [],
}
],
};
在我的模板中,我希望看到'Llull, Pereira dos Santos',就像第一种订阅方式一样。
我希望这是足够的细节。感谢您的帮助!
【问题讨论】:
-
是否显示其他信息?即:
c.profilePicture有输出吗?如果您尝试将整个响应输出为{{contactList | json}}或{{c | json}},您会得到一些东西还是一个空对象? -
是的,所有其他信息都显示了