如何在Ionic 2上制作?

时间:2017-06-26 01:04:54

标签: angular typescript ionic-framework ionic2

嘿伙计们,我是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,并且只列出了我所提到的模式之后的提案。我已经测试过它并没有按照我想要的方式工作。我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

首先,值得一提的是,您不应该将<android.support.design.widget.TextInputLayout android:id="@+id/firstNameTextInputLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:background="@drawable/test"> <android.support.design.widget.TextInputEditText android:id="@+id/firstNameTextInputEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/firstName" android:inputType="textPersonName" tools:ignore="MissingPrefix" /> </android.support.design.widget.TextInputLayout> 与数组一起使用。

为什么? this answer引用

  

其他人提到的for ... in语法用于循环遍历   对象的属性;因为JavaScript中的数组只是一个对象   使用数字属性名称(以及自动更新的&#34;长度&#34;   你可以理论上用它循环一个数组。但是   问题是它并没有将自己限制在数字属性中   值(请记住,偶数方法实际上只是其中的属性   value是一个闭包),也不是按数字顺序迭代它们。   因此,for ... in语法不应该用于循环   阵列。

请参阅this question以查看与。

相关的更多答案

也就是说,您的代码中的主要问题是您并未真正过滤for..in 数据,您只是将resposta分配给{ resposta。要进行过滤,您可以使用(当然)Array#filter,如下所示:

this.proposals

最终代码:

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