代码之家  ›  专栏  ›  技术社区  ›  Augustin R SOUVIK SAHA

角2+模板值的三元运算符

  •  2
  • Augustin R SOUVIK SAHA  · 技术社区  · 8 年前

    我的模板中有这样的内容:

    <span *ngIf="selectedSport.key === 'walking'"> steps </span>
    <span *ngIf="selectedSport.key !== 'walking'"> km </span>
    

    我发现这个拼写很难看,有两行是这个。。。无聊的。所以我试着寻找替代方案。

    英吉费尔斯

    <span *ngIf="selectedSport.key === 'walking'; else elseSpan"> steps </span>
    <ng-template #elseSpan> km </ng-template>
    

    我发现这一个更好,但是在多个条件下使用可能会比较困难,比如 *ngIf="A && B" . 模板中还有两行代码。。。

    获取函数

    <span> {{getUnit(selectedSport.key)}} </span>
    
    getUnit(sportKey: string): string {
       return sportKey === 'walking' ? 'steps' : 'km';
    }
    

    随着模板的可读性增强,这一点会更好。但是,我不想为此在组件中添加函数。

    你知道角2+模板是否支持三元运算符,如 getUnit 功能?
    你有更好的主意吗?

    2 回复  |  直到 8 年前
        1
  •  30
  •   Narendra Jadhav    7 年前

    你可以用 Conditional (ternary) operator ,模板内部,如下面的示例

     <span> {{selectedSport.key === 'walking' ? 'steps' : 'km'}} </span>
    
        2
  •  2
  •   Ramanathan Ganesan    8 年前

    • 最好将逻辑保存在控制器中,并将其填充到模型中 对象和视图只显示模型。
    • 淡化逻辑 视图层可能不是更好的设计,并且违反了 责任。
    推荐文章