Angular 2
Levenscyclushaken
Zoeken…
Opmerkingen
Evenementen beschikbaarheid
AfterViewInit
en AfterViewChecked
zijn alleen beschikbaar in componenten en niet in richtlijnen .
Evenementen bestelling
-
OnChanges
(meerdere keren) -
OnInit
(eenmalig) -
DoCheck
(meerdere keren) -
AfterContentInit
(eenmalig) -
AfterContentChecked
(meerdere keren) -
AfterViewInit
(eenmalig) (alleen component) -
AfterViewChecked
(meerdere keren) (alleen component) -
OnDestroy
(eenmalig)
Verder lezen
OnInit
Ontslagen wanneer component- of richtlijneigenschappen zijn geïnitialiseerd.
(Vóór die van de kinderrichtlijnen)
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'so-oninit-component',
templateUrl: 'oninit-component.html',
styleUrls: ['oninit-component.']
})
class OnInitComponent implements OnInit {
ngOnInit(): void {
console.log('Component is ready !');
}
}
OnDestroy
Ontslagen wanneer de component- of richtlijninstantie is vernietigd.
import { Component, OnDestroy } from '@angular/core';
@Component({
selector: 'so-ondestroy-component',
templateUrl: 'ondestroy-component.html',
styleUrls: ['ondestroy-component.']
})
class OnDestroyComponent implements OnDestroy {
ngOnDestroy(): void {
console.log('Component was destroyed !');
}
}
OnChanges
Ontslagen wanneer een of meer van de component- of richtlijneigenschappen zijn gewijzigd.
import { Component, OnChanges, Input } from '@angular/core';
@Component({
selector: 'so-onchanges-component',
templateUrl: 'onchanges-component.html',
styleUrls: ['onchanges-component.']
})
class OnChangesComponent implements OnChanges {
@Input() name: string;
message: string;
ngOnChanges(changes: SimpleChanges): void {
console.log(changes);
}
}
Bij wijziging wordt de gebeurtenis vastgelegd
name: {
currentValue: 'new name value',
previousValue: 'old name value'
},
message: {
currentValue: 'new message value',
previousValue: 'old message value'
}
AfterContentInit
Brand nadat de initialisatie van de inhoud van het onderdeel of de richtlijn is voltooid.
(Direct na OnInit)
import { Component, AfterContentInit } from '@angular/core';
@Component({
selector: 'so-aftercontentinit-component',
templateUrl: 'aftercontentinit-component.html',
styleUrls: ['aftercontentinit-component.']
})
class AfterContentInitComponent implements AfterContentInit {
ngAfterContentInit(): void {
console.log('Component content have been loaded!');
}
}
AfterContentChecked
Brand nadat het uitzicht volledig is geïnitialiseerd.
(Alleen beschikbaar voor componenten)
import { Component, AfterContentChecked } from '@angular/core';
@Component({
selector: 'so-aftercontentchecked-component',
templateUrl: 'aftercontentchecked-component.html',
styleUrls: ['aftercontentchecked-component.']
})
class AfterContentCheckedComponent implements AfterContentChecked {
ngAfterContentChecked(): void {
console.log('Component content have been checked!');
}
}
AfterViewInit
Branden na het initialiseren van zowel de componentweergave als de onderliggende weergaven. Dit is een handige levenscyclushaak voor plug-ins buiten het Angular 2-ecosysteem. U kunt deze methode bijvoorbeeld gebruiken om een jQuery-datumkiezer te initialiseren op basis van de markup die Angular 2 heeft weergegeven.
import { Component, AfterViewInit } from '@angular/core';
@Component({
selector: 'so-afterviewinit-component',
templateUrl: 'afterviewinit-component.html',
styleUrls: ['afterviewinit-component.']
})
class AfterViewInitComponent implements AfterViewInit {
ngAfterViewInit(): void {
console.log('This event fire after the content init have been loaded!');
}
}
AfterViewChecked
Het vuur nadat de controle van de weergave, van het onderdeel, is voltooid.
(Alleen beschikbaar voor componenten)
import { Component, AfterViewChecked } from '@angular/core';
@Component({
selector: 'so-afterviewchecked-component',
templateUrl: 'afterviewchecked-component.html',
styleUrls: ['afterviewchecked-component.']
})
class AfterViewCheckedComponent implements AfterViewChecked {
ngAfterViewChecked(): void {
console.log('This event fire after the content have been checked!');
}
}
DoCheck
Hiermee kunt u alleen luisteren naar wijzigingen op opgegeven eigenschappen
import { Component, DoCheck, Input } from '@angular/core';
@Component({
selector: 'so-docheck-component',
templateUrl: 'docheck-component.html',
styleUrls: ['docheck-component.']
})
class DoCheckComponent implements DoCheck {
@Input() elements: string[];
differ: any;
ngDoCheck(): void {
// get value for elements property
const changes = this.differ.diff(this.elements);
if (changes) {
changes.forEachAddedItem(res => console.log('Added', r.item));
changes.forEachRemovedItem(r => console.log('Removed', r.item));
}
}
}