Angular 4 MEAN堆栈:如何根据另一个{{value}}

时间:2017-10-26 18:19:25

标签: javascript angular

我是角度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
          );
        }

1 个答案:

答案 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
        );
      } 

这将确保从头开始加载所有数据。

我希望它有所帮助。告诉我如果我弄错了,或者你正在寻找其他解决方案。