Ich habe den ng2-bootstrap ngb-alert auf einer Seite einer Meteor Angular 2 App implementiert. Wenn ich eine Warnung an das Array Warnungen in Typoskript drücke, wird die Warnung nur angezeigt, nachdem ich erneut auf das Browserfenster geklickt habe.Warnung in der Meteor Angular 2 App erscheint nur nach einem Klick im Browser
Der Push wird innerhalb eines Rückrufs der Funktion Accounts.createUser ausgeführt. Wenn der Push innerhalb der Anmeldemethode ausgeführt wird (und nicht die Rückruffunktion Accounts.createUser), wird die Warnung sofort angezeigt.
Ich habe auch versucht, eine asynchrone Pipe im ngFor zu verwenden und einen Promise-Typ für die Variable alerts zu verwenden. Dies löst das Problem auch nicht.
Darunter Beispiel Codierung für das Problem.
Vorlage html
...
<p *ngFor="let alert of alerts">
<ngb-alert [type]="alert.severity">{{ alert.detail }}</ngb-alert>
</p>
...
<button type="button" (click)="signup()">Signup</button>
...
Komponentenklasse
...
alerts: IAlert[];
...
signup(): void {
this.alerts = [];
Accounts.createUser(this.credentials, (error) => {
if (error) {
this.alerts.push({severity: 'danger', detail: error.reason || 'Unknown error'});
} else {
this.alerts.push({severity: 'success', detail: 'Account created!'});
}
});
}
...
iAlert
export interface IAlert {
severity: string;
detail: string;
}
Dank Amit, ich hatte dieses Problem seit Wochen! Es funktioniert perfekt! –