수색…


소개

* NgIf : 표현식 평가에 따라 DOM 트리의 일부를 제거하거나 다시 만듭니다. 이것은 구조 지시어이며 구조 지시문은 요소를 추가, 교체 및 제거하여 DOM의 레이아웃을 변경합니다.

통사론

  • <div * ngIf = "false"> 테스트 </ div> <! - false로 평가 ->
  • <div * ngIf = "undefined"> 테스트 </ div> <! - false로 평가 ->
  • <div * ngIf = "null"> 테스트 </ div> <! - false로 평가됩니다. ->
  • <div * ngIf = "0"> 테스트 </ div> <! - false로 평가됩니다. ->
  • <div * ngIf = "NaN"> 테스트 </ div> <! - false로 평가 ->
  • <div * ngIf = ""> 테스트 </ div> <! - false로 평가됩니다. ->
  • 다른 모든 값은 true로 평가됩니다.

로드 중 메시지 표시

구성 요소가 준비되지 않고 서버의 데이터를 기다리는 경우 * ngIf를 사용하여 로더를 추가 할 수 있습니다. 단계 :

먼저 boolean을 선언하십시오.

loading: boolean = false;

그런 다음 구성 요소에 ngOnInit 이라는 라이프 사이클 후크를 추가합니다.

ngOnInit() {
   this.loading = true;
}

그리고 서버로부터 완전한 데이터를 얻은 후에는 boolean을 false로 설정합니다.

 this.loading=false; 

html 템플릿에서 loading 속성과 함께 * ngIf를 사용하십시오.

<div *ngIf="loading" class="progress">
   <div class="progress-bar info" style="width: 125%;"></div>
</div>

조건에 경고 메시지 표시

<p class="alert alert-success" *ngIf="names.length > 2">Currently there are more than 2 names!</p>

* ngFor 루프의 시작 또는 끝에서 함수를 실행하려면 * ngIf 사용

NgFor는 지역 변수에 별명을 지정할 수있는 일부 값을 제공합니다.

  • index - 0에서 시작하는 iterable에서 현재 항목의 (가변) 위치
  • first - (boolean) 현재 항목이 iterable의 첫 번째 항목이면 true
  • last - (boolean) 현재 항목이 iterable의 마지막 항목이면 true
  • even - (boolean) 현재 색인이 짝수이면 true
  • odd - (boolean) 현재의 인덱스가 홀수 인 경우는 true
<div *ngFor="let note of csvdata; let i=index; let lastcall=last">
      <h3>{{i}}</h3> <-- to show index position
      <h3>{{note}}</h3>
      <span *ngIf="lastcall">{{anyfunction()}} </span><-- this lastcall boolean value will be true only if this is last in loop
      // anyfunction() will run at the end of loop same way we can do at start
    </div>

* ngIf를 * ngFor와 함께 사용하십시오.

당신이 사용할 수 없지만 *ngIf*ngFor (그것은 것 런타임에 오류가 있습니다) 같은 사업부에 당신은 중첩 할 수 있습니다 *ngIf 에서 *ngFor 원하는 동작을 얻을 수 있습니다.

예 1 : 일반 구문

<div *ngFor="let item of items; let i = index">
  <div *ngIf="<your condition here>">

   <!-- Execute code here if statement true -->

  </div>
</div>

예제 2 : 인덱스가 짝수 인 요소 표시

<div *ngFor="let item of items; let i = index">
  <div *ngIf="i % 2 == 0">
    {{ item }}
  </div>
</div>

단점은 외부 div 요소를 추가해야한다는 것입니다.

그러나 div 요소를 * ngFor를 사용하여 반복해야하고 use * ngIf를 사용하여 요소를 제거해야하는지 여부를 확인하는 경우에도 div 추가하는 것이 좋지 않은 경우를 생각해보십시오. 이 경우 * ngFor에 template 태그를 사용할 수 있습니다.

<template ngFor let-item [ngForOf]="items">
    <div *ngIf="item.price > 100">
    </div>
</template>

추가 외부 div 추가하는이 방법은 필요하지 않으며 또한 <template> 요소가 DOM에 추가되지 않습니다. 위의 예제에서 DOM에 추가 된 요소는 iterated div 요소뿐입니다.

참고 : Angular v4에서 <template><ng-template> 을 위해 더 이상 사용되지 않으며 v5에서 제거됩니다. Angular v2.x에서 <template> 은 여전히 ​​유효합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow