我是角度4的新手,不知道如何获得我的解决方案。 我从mongodb获取数据并且工作正常。
在现场,contact.company是公司的_id。公司名称保存在company.name。
而不是{{contact.company}}(存储id的位置)应该有client.name(这是公司的名称)来显示真实姓名,而不是id。我怎么得到它?
我想我需要自动调用一个从数据库中获取值的方法?
完整代码在https://github.com/hevilp/angular/blob/master/client/app/contact/contact.component.html
此处的完整代码:https://github.com/hevilp/angular
<tr *ngFor="let contact of contacts">
<td>{{contact.anrede}}</td>
<td>{{contact.titel}}</td>
<td>{{contact.vorname}}</td>
<td>{{contact.nachname}}</td>
<td>{{contact.company}}</td>
<td>
和contact.component.ts(代码无效......)
getClient() {
this.clientService.getClient().subscribe(
data => this.client = data,
error => console.log(error),
() => this.isLoading = false
);
}
答案 0 :(得分:1)
我不确定我是否理解你的问题,告诉我我错了。 您希望显示联系人数据,但对于字段contact.company,您希望使用以下功能显示从数据库获取的真实姓名: contact.company : getClient(联系人)?
如果是这样,为什么要等到显示数据才能得到公司的真实姓名?为什么不解析你的联系人数组并添加一个字段: contact_name 从一开始,我的意思是在ngOnInit?
如果是这样,您应该将此调用添加到 getContacts()
getContacts() {
this.contactService.getContacts().subscribe(
data => {
for (let contact of data) {
contact.contact_name = this.getClient(contact);
}
this.contacts = data
},
error => console.log(error),
() => this.isLoading = false
);
}
这将确保从头开始加载所有数据。
我希望它有所帮助。告诉我如果我弄错了,或者你正在寻找其他解决方案。