如何在ionic html模板中编写条件语句

Posted

技术标签:

【中文标题】如何在ionic html模板中编写条件语句【英文标题】:how to write conditional statement inside ionic html template 【发布时间】:2017-09-04 17:13:19 【问题描述】:

我正在将我的应用程序从 jquery 移植到 ionic 框架。 在 jquery 中,我正在编写 javascript 代码来手动连接 html 标签。 从 jquery 代码中粘贴相同的一部分

  for ( count = start - 1; count < end ; count ++ )
            
                if (tranList[count].tranType == "R" )
                    tranType = "Redeem" ;
                else 
                    tranType = "Earn";

                text += "<tr> <td>"+ tranType +  "</td>" ;

在 Ionic 中,我正在尝试使用 ionic list 编写相同的代码 下面是我的html模板

 <ion-list>
    <ion-item *ngFor="let tran of transactions">
     <p> tran.pointsEarned </p> 
    </ion-item>
  </ion-list>

在 pointsEarned 旁边,我需要打印积分兑换或赚取类似于 jquery 代码。我如何做到这一点?

【问题讨论】:

【参考方案1】:

另一种处理条件模板的方法是使用 *ngIf 如果表达式 tran.tranType 为 'R' ,则显示内联模板。即您已兑换(表达式 tran.pointsRedeemed 的值)积分。

<ion-content>
  <ion-list>
    <ion-item *ngFor="let tran of transactions">      
      <p *ngIf=" tran.tranType == 'R'" > You have redeemed  tran.pointsRedeemed points.  </p>
      <p *ngIf=" tran.tranType == 'E'" > You have earned  tran.pointsEarned points.  </p>  
    </ion-item>
  </ion-list>
</ion-content>
</ion-content>

【讨论】:

【参考方案2】:

我不确定到底是什么问题,但你可以写一个这样的条件语句:

  <ion-list>
    <ion-item *ngFor="let tran of transactions">
     <p> tran.pointsEarned  tran.tranType === 'R' ? 'Redeem' : 'Earn' </p> 
    </ion-item>
  </ion-list>

有很多方法可以做到这一点,但我想ternary operator 是最简单和最干净的方法。

【讨论】:

【参考方案3】:

我不确定我们是否在同一页面上,但这是 if...else 声明的另一种方式:

  <div *ngIf = "tran.tranType == 'R'; else elsetag">
    Redeem
  </div>
  <ng-template #elsetag>
  <div>
    Earn
  </div>
  <ng-template>

【讨论】:

以上是关于如何在ionic html模板中编写条件语句的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ionic 2 中使用 *ngIf 条件从 html 调用函数?

(IONIC - Angular)我如何在 html 卡片中仅显示符合特定条件的 JSON 中的某些对象?

python之最强王者——变量,条件语循环语句

如何在 QML 中编写条件导入语句?

如何在 Robot Framework 中编写 if 语句的多个条件

python-条件判断