我想在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}}
成为可能?
答案 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标记,而这个标记在选项中是不允许的。