J'ai détecté un bogue dans le module Angular 4 ou PrimNG Datatables.Angular 4 - bug détecté avec PrimNG Datatable
J'ai vue simple:
<span *ngFor="let node of nodes">{{node.label}}</span> //works with case 1,2,3 and 4
<p-dataTable [value]="nodes"> //works with case 1, 2, and 3 (but not with 4!)
<p-column field="label" header="Label"></p-column>
</p-dataTable>
et le code dans le composant:
private nodes:any[] = []
ngOnChanges() {
//case 1 -> ok
//this.nodes.push({label: 'foo'})
//case 2 -> ok
//this.nodes = [{label: 'foo'}]
this.someService.getAll().subscribe(
records => {
//case 3 ->ok
//this.nodes = [{label: 'foo'}]
//case 4 -> BUG
//this.nodes.push({label: 'foo'}) //datatable is not updated
}
)
}
Quand je lance ce code avec cas décommentée 1, 2 ou 3 tout est OK, mais quand je suis en train pour exécuter le cas 4 (identique au cas 1 mais après la résolution du service) - les données primaires ne semblent pas voir de changements. Dans Angular 2, je n'avais pas ce problème. Pourriez-vous m'expliquer ce qui se passe ici? :)
Cordialement
Alors, pourquoi * ngFor détecte les changements correctement, mais primeng pas? –
ho! Je n'ai pas vu le commentaire dans le html ... mon mauvais. Je l'ai essayé et pour moi ça ne marche pas avec ngFor ... Tu as lancé ton étui 1 par 1 non? – runit
comment c'est possible. Regardez n'importe quel tutoriel sur internet, quand vous poussez quelque chose à un tableau, il est immédiatement visible lorsque vous utilisez * ngFor. Voici la même chose. –