在ngif中使用ngfor的元素

时间:2018-09-27 12:00:23

标签: angular typescript firebase

当前行为:请参见下面的代码。

行为愿望:我只想使用ngfor元素在ngif中进行比较。

<div *ngFor="let item of userspeList" >
            <div *ngFor="let rspe of rspeList" >


              <div *ngIf="item?.uid === rspe?.uid; then adan">

                   <p>Je suis le plus grand</p>
              </div>


                <ng-template #adan>
                     {{item.uid}} and {{rspe.uid}}
                </ng-template>

            </div>

      </div>

浏览器显示带有以下内容的ng模板:

   PFbrvtxABEeXKhRMH2RaWnSkq0g1 and PFbrvtxABEeXKhRMH2RaWnSkq0g1.

2 个答案:

答案 0 :(得分:3)

您只有一个ng-template,因此可以使用else

<div *ngIf="(item)?.uid === (rspe)?.uid ; else adan">
  {{item.uid}} and {{rspe.uid}}
</div>

<ng-template #adan>
  <p>Je suis le plus grand</p>
</ng-template>

请查看https://toddmotto.com/angular-ngif-else-then

您的代码还有一个问题,如果条件失败,它将不会显示

<p>Je suis le plus grand</p>

答案 1 :(得分:0)

将标识(===)运算符与X = make_dataclass('X', [('i', int), ('s', str)]) x = X(i=42, s='text') asdict(x) # {'i': 42, 's': 'text'} 一起使用

@dataclass
class X:
    i: int

x = X(i=42)
x.__class__ = make_dataclass('Y', fields=[('s', str)], bases=(X,))
x.s = 'text'

asdict(x)
# {'i': 42, 's': 'text'}