Инструменты пользователя

Инструменты сайта


angular:angular2:directive:ngif

Это старая версия документа!


ngIf

Директива ngIf позволяет удалить или, наоборот, добавить элемент при определенном условии. Например, определим следующий компонент:

import { Component} from '@angular/core';
 
@Component({
    selector: 'my-app',
    template: `<p *ngIf="condition">
                  Привет мир
                </p>
                <p *ngIf="!condition">
                  Пока мир
                </p>
                <button (click)="toggle()">Toggle</button>`
})
export class AppComponent {
 
    condition: boolean=true;
 
    toggle(){
        this.condition=!this.condition;
    }
}

В зависимости от значения свойства condition будет отображаться либо первый, либо второй параграф.

Мы можем задавать альтернативные выражения с помощью директивы ng-template. Так, предыдущий пример будет аналогичен следующему:

import { Component} from '@angular/core';
 
@Component({
    selector: 'my-app',
    template: `<p *ngIf="condition;else unset">
                  Привет мир
                </p>
                <ng-template #unset>  
                  <p>Пока мир</p>  
                </ng-template>   
                <button (click)="toggle()">Toggle</button>`
})
export class AppComponent {
 
    condition: boolean=true;
 
    toggle(){
        this.condition=!this.condition;
    }
}

Выражение *ngIf=«condition;else unset» указывает, что если condition равно false, то срабатывает блок <ng-template #unset>.

Либо можно определить более изощренную логику. Так, изменим шаблон компонента следующим образом:

template: ` <div *ngIf="condition; then thenBlock else elseBlock"></div>   
            <ng-template #thenBlock>Then template</ng-template>  
            <ng-template #elseBlock>Else template</ng-template>    
            <button (click)="toggle()">Toggle</button>`

В данном случае, если condition равно true, то отображается блок thenBlock, иначе отображается блок elseBlock.

angular/angular2/directive/ngif.1612094985.txt.gz · Последние изменения: 2023/01/12 12:15 (внешнее изменение)