In angular1, we call the function ng-init based on ng-if condition. The following code represents If first div match with date && time then it will check the second
You can use ngOnInit method in your component class but remember to implements the OnInit interface.
Here's an example:
@Component({
selector: 'ramadan',
template: `<div>Ramadan</div>`
})
class Ramadan implements OnInit {
ngOnInit() {
this.play();
}
}
You can fin more about ngOnInit here.
There is no ng-init
in Angular2. You can easily create such a directive yourself though.
import { Directive, Input } from '@angular/core';
@Directive({
selector: '[ngInit]'
})
export class NgInit {
@Input() ngInit;
ngOnInit() {
if (this.ngInit) {
this.ngInit();
}
}
}
and then use it like
<div *ngIf="ramadan.date === date && ramadan.time === clock">
<div *ngIf="ramadan.checked" [ngInit]="play"></div>
<div *ngIf="!ramadan.checked" [ngInit]="pause"></div>
</div>
Working code,
Custom directive:
import { Directive, Input } from '@angular/core';
@Directive({ selector: '[myCondition]' })
export class ngInitDirective {
constructor() { }
@Input() set myCondition(condition: boolean) {
if (!condition) {
console.log("hello")
} else {
console.log("hi")
}
}
}
In template:
<ion-label *ngIf="setting1.date === current_date && setting1.time === current_time">
<div *myCondition="setting1.checked === condition" >Play</div>
<div *myCondition="!setting1.checked === !condition">pause</div>
</ion-label>