/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import {Component, NgModule, OnInit, TemplateRef, ViewChild} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {Subject} from 'rxjs';
// #docregion NgIfSimple
@Component({
selector: 'ng-if-simple',
template: `
show = {{show}}
Text to show
`
})
export class NgIfSimple {
show = true;
}
// #enddocregion
// #docregion NgIfElse
@Component({
selector: 'ng-if-else',
template: `
show = {{show}}
Text to show
Alternate text while primary text is hidden
`
})
export class NgIfElse {
show = true;
}
// #enddocregion
// #docregion NgIfThenElse
@Component({
selector: 'ng-if-then-else',
template: `
show = {{show}}
this is ignored
Primary text to showSecondary text to showAlternate text while primary text is hidden
`
})
export class NgIfThenElse implements OnInit {
thenBlock: TemplateRef|null = null;
show = true;
@ViewChild('primaryBlock', {static: true}) primaryBlock: TemplateRef|null = null;
@ViewChild('secondaryBlock', {static: true}) secondaryBlock: TemplateRef|null = null;
switchPrimary() {
this.thenBlock = this.thenBlock === this.primaryBlock ? this.secondaryBlock : this.primaryBlock;
}
ngOnInit() {
this.thenBlock = this.primaryBlock;
}
}
// #enddocregion
// #docregion NgIfAs
@Component({
selector: 'ng-if-as',
template: `
Hello {{user.last}}, {{user.first}}!
Waiting... (user is {{user|json}})
`
})
export class NgIfAs {
userObservable = new Subject<{first: string, last: string}>();
first = ['John', 'Mike', 'Mary', 'Bob'];
firstIndex = 0;
last = ['Smith', 'Novotny', 'Angular'];
lastIndex = 0;
nextUser() {
let first = this.first[this.firstIndex++];
if (this.firstIndex >= this.first.length) this.firstIndex = 0;
let last = this.last[this.lastIndex++];
if (this.lastIndex >= this.last.length) this.lastIndex = 0;
this.userObservable.next({first, last});
}
}
// #enddocregion
@Component({
selector: 'example-app',
template: `
`
})
export class AppComponent {
}
@NgModule({
imports: [BrowserModule],
declarations: [AppComponent, NgIfSimple, NgIfElse, NgIfThenElse, NgIfAs],
})
export class AppModule {
}