Stworzyłem aplikację NativeScript z kątem 2, mam tablicę obiektów, które oczekuję w interfejsie aplikacji. zachowanie polega na tym, że jeśli wepchnę obiekt do tablicy bezpośrednio wewnątrz ngOnInit(), to działa, ale jeśli utworzę obietnicę w ngOnInit(), to nie działa. Oto kod:Angular 2 nie odświeżaj widoku po tablicy push w obietnicy ngOnInit
export class DashboardComponent {
stories: Story[] = [];
pushArray() {
let story:Story = new Story(1,1,"ASD", "pushed");
this.stories.push(story);
}
ngOnInit() {
this.pushArray(); //this is shown
var promise = new Promise((resolve)=>{
resolve(42);
console.log("promise hit");
});
promise.then(x=> {
this.pushArray(); //this is NOT shown
});
}
}
względna html jest:
<Label *ngFor="let story of stories" [text]='story.message'></Label>
podczas uruchamiania aplikacji widzę tylko jeden impuls, ale nie stworzyłem przycisk, który wyzwoli się „console.log (JSON. stringify (this.stories)); " i w tym momencie, kiedy pukam przycisk, ui wydaje się wykrywać zmienioną tablicę, a drugi pchnięty obiekt pojawia się.
Edycja:
utworzonego prostszy przykład w tym nici: Angular 2: when i change a variable in a promise.than in ngOnInit the view doesn't refresh
Jeśli ponownie załadujesz stronę, pojawią się zmiany? –