Angular2 *ngIf 无法正常工作

布赖恩M

在我的代码中,我使用 *ngIf ,它应该在任何时候只显示两者之一。但问题是它只显示第二个,即使在某些时候不应该显示第二个。我使用 for 循环来显示所有元素,但正如您在图片中看到的,即使第二个的值为 -1,也只显示了第二个。谢谢你的帮忙!

代码:

<ng-template let-internship="rowData" pTemplate="body" *ngIf="favorite?.FavoritesIds.indexOf(internship?.InternshipId) === -1;"><!--TODO BRIAN ngif-->
  <a class="btn btn-default" [routerLink]="['/student/stageopdrachten', internship.InternshipId, false]"><!--Not shown TODO-->
    <i class="glyphicon"></i>Meer
  </a>
</ng-template>
<ng-template let-internship="rowData" pTemplate="body" *ngIf="favorite?.FavoritesIds.indexOf(internship?.InternshipId) !== -1;"><!--TODO BRIAN ngif-->
  <a class="btn btn-default" [routerLink]="['/student/stageopdrachten', internship.InternshipId, true]"><!--always shown-->
    <i class="glyphicon"></i>Meer{{favorite?.FavoritesIds.indexOf(internship?.InternshipId)}}
  </a>
</ng-template>

图像: 显示状态的图像

丹尼尔·库克

使用div代替 ng-template。您不能将语法糖 * 与 ng-template 一起使用。

结构指令

星号是一些更复杂的东西的“语法糖”。在内部,Angular 分两个阶段对其进行脱糖。首先,它将*ngIf ="..." 转换为模板属性 template="ngIf ...",如下所示。

<div template="ngIf hero">{{hero.name}}</div>

然后它将模板属性转换为一个元素,包裹在宿主元素周围,就像这样。

<ng-template [ngIf]="hero">
  <div>{{hero.name}}</div>
</ng-template>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章