2016-08-26 67 views
5

Tôi không hiểu tại sao hai toán tử này tồn tại. Trong trường hợp so sánh boolean cả == và === dường như để làm việc, nhưng trong trường hợp so sánh enum chỉ '==' hoạt động:Góc 2: sự khác biệt giữa các toán tử so sánh == và === trong ngIf chỉ thị

<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

Vui lòng kiểm tra [ngIf description] (http://stackoverflow.com/questions/tagged/ngif). Đó là về Net: 'NGIF là một công cụ mã nguồn mở tạo ra khả năng cho. Net để tạo/đọc các Gifs động'. – 030

Trả lời

11

Trong javascript, các nhà điều hành '==' chỉ kiểm tra bình đẳng và ' === 'loại séc và sự bình đẳng

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

câu hỏi là về angular2 không liên quan đến javascript tôi nghĩ rằng –

+4

Vâng, tôi nghĩ rằng điều này là có liên quan. Kể từ khi enums được lưu trữ trong một var tĩnh tại thời gian transpilation. Nó chỉ là loại giá trị lưu trữ trong enum không giống với giá trị được sử dụng trong kiểm tra –

Các vấn đề liên quan