我是角色的新手,假设我有一系列像这样的值
domElement:Array<boolean>=[true,false,false,false,false,true,true,true];
我希望在使用ngFor时使用不同的html表示真值,使用不同的html表示错误值,我按照blog执行了此操作,但它无法正常工作
即
<div *ngFor="let n of domElement; let i=index">
<div *ngFor="let n of num; let i=index">
<ng-template *ngIf="n; then gotValue else noValue"></ng-template>
<ng-template #noValue>
<div class="alert alert-warning">
no value found - dummy element for no record !!!
</div>
</ng-template>
<ng-template #gotValue>
<div class="alert alert-success">
got values !!!
</div>
</ng-template>
</div>
答案 0 :(得分:2)
我猜你用同一个名字定义了两个不同的块,你的代码中没有#gotValue块试试这个:
<div *ngFor="let n of domElement">
<ng-template *ngIf="n; then noValue else gotValue"></ng-template>
<ng-template #noValue>
<div class="alert alert-warning">
no value found - dummy element for no record !!!
</div>
</ng-template>
<ng-template #gotValue>
<div class="alert alert-success">
got values !!!
</div>
</ng-template>
</div>
答案 1 :(得分:2)
<div *ngFor="let n of num">
<template1 *ngIf="n%2 === 0; else other_content"></template1>
<template2 #other_content></template2>
</div>
如果你的代码没有改变,只有改变的东西比造型要好,而是使用一个通过 ng class directive 替换样式的通用组件。
<some-element [ngClass]="{'first': true, 'second': true, 'third': false}">...</some-element>
答案 2 :(得分:1)
这是你要找的吗?
<div *ngFor="let n of num">
<template1 *ngIf="n%2 === 0"></template1>
<template2 *ngIf="n%2 !== 0"></template2>
</div>
答案 3 :(得分:0)
<div *ngFor="let n of num; let i=index">
<div *ngIf="n%2===0;else gotValue"></div>
<div class="alert alert-warning">
no value found - dummy element for no record !!!
</div>
<ng-template #gotValue>
<div class="alert alert-success">
got values !!!
</div>
</ng-template>
您不需要noValue ng-template。这对我有用。希望它有所帮助。