Ich habe Beispiele gesehen, bei denen Code in eine setTimeout-Funktion eingeschlossen wird, um zu vermeiden, dass Vorlagen/Komponenten ohne die Daten erzeugt werden, auf denen sie warten. Ich möchte mit dem jQuery Bootstrap-Multiselect eine Liste von Organisationen anzeigen.Angular 2: setTimeout für alles?
ngOnInit(){
this._panelService.getOrgs()
.subscribe(
orgs => this.orgs = orgs,
error => alert('There was an error connecting to the API'),
() => setTimeout(() => jQuery('#organizations').multiselect(), 0));
}
Ich habe es auch an anderen Orten verwendet. In diesem Fall bin ich rufe die API nach einem löschen, um eine Änderung in einem * ngFor auslösen:
deleteBoard(panelId: number, boardId: number) {
this._boardService.deleteBoard(panelId, boardId)
.subscribe(
boards => this.panel.boards = boards,
error => alert('There was an error contacting the API.'),
() => setTimeout(this._boardService.getAvailableRanks(panelId)
.subscribe(ranks => this.updatedRanks = ranks), 0));
}
* ngFor die Änderung nicht erkennen, es sei denn, ich setTimeout verwenden. Was habe ich verpasst?
Ich bin mit Beta 14
Danke für den Tipp. –