在Angular中使用ngIf获取错误

时间:2018-04-14 19:28:24

标签: angular angular-ng-if

我正在使用角度,我想显示来自json形式的变量的数据 我能够为* ngfor做这件事,但我也想提出一个检查msg.who ==“Bot”的条件。我是这样做的:

<div class="UserWrapper" *ngFor="let msg of msgs" ngIf="msg.who == 'User ">
    <div class=""></div>
        <div class = "speech-bubble1 z-depth-5"><p>{{msg.msg}}</p>
            <p class="timeRight">{{msg.time}}</p>
    </div>
 </div>

我不知道如何使用ng,如果采用其他方式,但在这样做时我会收到以下错误。

ERROR Error: StaticInjectorError(AppModule)[NgForOf -> TemplateRef]: 
StaticInjectorError(Platform: core)[NgForOf -> TemplateRef]: 
NullInjectorError: No provider for TemplateRef!

如何检查给定条件

1 个答案:

答案 0 :(得分:10)

您不能在同一 ngFor 上使用 ngIf element ,因此请将其替换使用 ng-container ,也很少有错误,例如 *ngIf 而不是 ngIf ,您应该使用<当你检查类型时,强> ===

按如下方式更改您的代码,

<ng-container *ngFor="let msg of msgs">
  <div *ngIf="msg.who === User"  class=""> 
        <div class = "speech-bubble1 z-depth-5"><p>{{msg.msg}}</p>
        <p class="timeRight">{{msg.time}}</p>
  </div>
</ng-container>