2016-08-26 39 views
5

Nie rozumiem, dlaczego te dwa operatory istnieją. W przypadku logicznego porównania zarówno == i === wydają się działać, ale w przypadku porównania enum tylko „==” działa:Angular 2: jakie różnice między operatorami porównania == i === w dyrektywie ngIf

<div class="interventionGroup"> 

    <div class="interventionGroupHeader transition_1s" (click)="onClickHeader()"> 
     {{GroupName}} 
     <div *ngIf="expanded == true" class="expand-icon"><i class="material-icons">expand_less</i></div> <!-- WORKS --> 
     <div *ngIf="expanded === false" class="expand-icon"><i class="material-icons expand-icon">expand_more</i></div> <!-- WORKS --> 
    </div> 

    <button *ngIf="GroupType == GroupTypeEnum.mesInterventions">dfdsfsd</button> <!-- WORKS --> 

    <div style="list-style-type:none" *ngIf="expanded === true"> 
     <div *ngFor="let intervention of interventions" 
      (click)="onClick(intervention)"> 
      <intervention-button [intervention]="intervention"></intervention-button> 
     </div> 
    </div> 
</div> 
+0

Proszę sprawdzić [opis ngIf] (http://stackoverflow.com/questions/tagged/ngif). Chodzi o .Net: 'NGif jest narzędziem open-source, które tworzy możliwość tworzenia/odczytu animowanych Gifów .Net. – 030

Odpowiedz

11

w javascript, operator „==” tylko sprawdzić równość i ' === 'typ kontroli i równość

0 == '0' => true 
0 === '0' => false 
+0

pytanie dotyczy angular2 nie związane z javascript myślę, że –

+4

Cóż, myślę, że jest to powiązane. Ponieważ przeliczniki są przechowywane w statycznym rozmiarze w czasie transpozycji. Chodzi o to, że typ magazynu wartości w wyliczeniu nie jest taki sam, jak wartość użyta podczas sprawdzania –