如何为离子2做一个



嘿,我是新来的Ionic,我有很多疑问。在我的项目中,我有请求,每个请求都有一系列建议。但是,当我从数据库中获取列表时,我只想显示建议谁是"赢家",他们的要求是"完成的",你们明白了吗?我将显示代码。

html`

 <ion-segment-button value="third" (click)="getProposal('Winner')">
    Aceitas
  </ion-segment-button>

打字稿

getProposals(status: string) {
if (status === 'Winner') {
  this.requestService.getProposalsPartner(this.user.email, status).then( resposta => {
        let proposalsWinner = resposta;
        for (let i in proposalsWinner) {
          if (proposalsWinner[i].request.status != 'Finished') {
            this.proposals = resposta;
          }              
        }
    })
} else {
      this.requestService.getProposalsPartner(this.user.email, status).then( resposta => {
      this.proposals = resposta;
    })  
}
}

因此,我试图为遵循我提到的模式的建议做出一个建议,并仅在列表中列入列表。我已经进行了测试,并且它无法按照我想要的方式工作。我的代码上怎么了?

首先,值得一提的是,您不应该将for..in与数组一起使用。

为什么? 引用来自此答案

for ...在其他人提到的语法中是为了循环 对象的属性;由于JavaScript中的数组只是一个对象 具有数字属性名称(以及自动上升的"长度" 属性(,您可以从理论上循环与它一起循环。但是 问题是它不限于数字属性 值(请记住,即使方法实际上只是属性 值是一个闭合(,也不是按数字顺序迭代的。 因此,在语法中不应用于循环循环 阵列。

请参阅此问题查看与。

有关的更多答案。

也就是说,代码中的主要问题是您并没有真正过滤resposta 数据,而是将resposta分配给this.proposals。要过滤,您可以使用(当然( Array#filter ,例如:

this.proposals = response.filter(res => res.request.status !== 'Finished');

最终代码:

getProposals(status: string) {
  this.requestService.getProposalsPartner(this.user.email, status).then(response => {
    if (status === 'Winner') {
      this.proposals = response.filter(res => res.request.status !== 'Finished');
    } else {
      this.proposals = response;
    }
  });
}

模板:

<ng-container *ngIf="proposals">
  <div *ngFor="let proposal of proposals">
    {{ proposal | json }}
  </div>
</ng-container>

相关内容

  • 没有找到相关文章

最新更新