如何在括号内使用内联if语句

时间:2017-01-25 07:59:12

标签: angular angular2-template

我想在angular2模板中使用内联if语句吗?

<select [(ngModel)]="value" class="form-control" (blur)="onBlur()">
    <option *ngFor="let item of items" [ngValue]="item">{{item.name?item.name:item}}</option>
</select>

如何使用内联if语句使{{item.name?item.name:item}}成为可能?

2 个答案:

答案 0 :(得分:15)

首先通过下面的!!将项目名称转换为布尔值

{{!!item.name ? item.name : item}}

答案 1 :(得分:2)

您可以使用三元运算符(这是您已经使用的运算符)或使用<template>标记(see more):

<select [(ngModel)]="value" class="form-control" (blur)="onBlur()">
  <option *ngFor="let item of items" [ngValue]="item">
    <template [ngIf]="item.name">{{ item.name }}</template>
    <template [ngIf]="!item.name">{{ item }}</template>
  </option>
</select>

当然,您可以使用ngSwitch代替*ngIf,但不会发生太大变化。

使用<template>标记的优点是它不会创建一个真正的HTML标记,而这个标记在选项中是不允许的。