Necesito ordenar mi JSON por id ascendentemente, por la consola me lo saca ordenado, pero a la hora de pintarlo me lo despinta, sabéis como puedo hacerlo?
EDITO
Ya se de donde viene el error y por que, pero no se solucionarlo a ver si alguien puede hecharme una mano, el error viene del
keyvalue
lo está ordenando correctamente pero cuando llega al número 10 lo coge como si fuese un 1 entonces lo pone debajo del 1 cuando llega el 11 lo pone en tercera posición porque lo coge como otro 1 y así sucesivamente...
<ng-template #bloqueTemplate let-bloque='obj'>
<mat-expansion-panel class="bloque">
<mat-expansion-panel-header>{{bloque.titulo}}</mat-expansion-panel-header>
<div *ngFor="let pregunta of bloque.preguntas | keyvalue">
Hola
{{ bloque.id}}
<ng-container [ngTemplateOutlet]="preguntaTemplate" [ngTemplateOutletContext]="{obj:pregunta.value, id: bloque.id}">
</ng-container>
</div>
</mat-expansion-panel>
<div>
<canvas id="{{bloque.id}}">
</canvas>
</div>
</ng-template>
No se si puede que esté en esta parte de código
<div *ngFor="let item of cuestionario.content | keyvalue">
<ng-container [ngTemplateOutlet]="isPregunta(item.value) ? preguntaTemplate : bloqueTemplate" [ngTemplateOutletContext]="{obj:item.value, id: isPregunta(item.value) ? 0 : item.value.id}">
</ng-container>
</div>
cuestionario.content
initFormControl() {
for(var index in this.cuestionario.content) {
var item = this.cuestionario.content[index];
if(this.isPregunta(item)) {
this.crearFormControls(item, 0);
} else {
for(var preg of item.preguntas) {
this.crearFormControls(preg, item.id);
}
}
}
this.done = true;
this.getGraphsData()
}