Ich bin neu in Angular 2 und ich benutze auch PrimeNG.Wie kann man vermeiden, dass die Benutzeroberfläche vor den Daten in Angular 2 + PrimeNG geladen wird?
Nur um zu veranschaulichen, was passiert, habe ich die Registerkarte "Configurações" dupliziert, wie Sie auf den Bildern sehen können.
Die zwei Registerkarten haben genau den gleichen Code, aber die Verhaltensweisen sind unterschiedlich. Die erste hat die Toggles nicht korrekt geladen. Der zweite funktioniert gut.
Mein HTML:
<p-tabView orientation="left">
<p-tabPanel header="Administrador">
<p-growl [value]="msgs"></p-growl>
<p-dataTable [value]="tblColabAdminList">
<p-column field="snomatrcompl" header="Matrícula"></p-column>
<p-column field="nflativo" header="Status" styleClass="col-button">
<template let-tblColabAdmin="rowData" pTemplate type="body">
<p-inputSwitch onLabel="ativo" offLabel="inativo" (click)="selectAdmin(tblColabAdmin)" [(ngModel)]="tblColabAdmin.nflativo"></p-inputSwitch>
</template>
</p-column>
</p-dataTable>
</p-tabPanel>
</p-tabView>
Und es ist mein Typoskript:
import { Component, OnInit } from '@angular/core';
import { ConfigService } from './config/configService';
import { TblColabAdmin } from './config/TblColabAdmin';
import { Message } from 'primeng/primeng';
@Component({
templateUrl: 'app/app.config.html',
selector: 'config-app',
providers: [ConfigService]
})
export class AppConfig implements OnInit {
private errorMessage: string;
tblColabAdminList: TblColabAdmin[];
msgs: Message[] = [];
constructor(
private configService: ConfigService) {
}
ngOnInit() {
this.getConfig();
}
getConfig() {
this.configService.getTblColabAdmin().subscribe(
tblColabAdminList => this.tblColabAdminList = tblColabAdminList,
error => this.errorMessage = <any>error
);
}
selectAdmin(tblColabAdmin: TblColabAdmin) {
this.msgs = [];
this.msgs.push({ severity: 'info', summary: 'Administrador selecionado', detail: 'Matrícula: ' + tblColabAdmin.snomatrcompl });
}
}
Ich denke, dass in der ersten Registerkarte die Benutzeroberfläche, bevor das geladen wird Daten.
Aber warum passiert und wie löst man das? Vielen Dank!
Ich bin mir nicht sicher, welche Art von Backend Sie verwendet haben, aber es gibt so etwas wie Router Daten Resolver, die https helfen kann: http://angular.io/api/router/Resolve Angular University hat ein Beispiel https://angular-university.io/lesson/angular-rxjs-reactive-patterns-implementing-a-router-data-resolver-introducing-typescript-tuple-types – JGFMK