角度2のNativeScriptアプリケーションを作成しました。アプリケーションのフロントエンドに表示されるオブジェクトの配列があります。振る舞いは、ngOnInit()の中で配列にオブジェクトを直接プッシュすると動作しますが、ngOnInit()でpromiseを作成しても動作しません。ここでのコードは次のとおりです。角2は、配列プッシュ後のビューをリフレッシュしません。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
});
}
}
相対的なHTMLは次のとおりです。
<Label *ngFor="let story of stories" [text]='story.message'></Label>
アプリは、私が唯一のプッシュを参照して開始したとき、私は「はconsole.log(JSONをトリガーボタンを作成したよりも。 stringify(this.stories)); "その時点で、私がボタンをタップすると、UIは変更された配列を検出したように見え、もう一方のプッシュされたオブジェクトが表示されます。
EDIT:
私はこのスレッドでより単純な例を作成した:Angular 2: when i change a variable in a promise.than in ngOnInit the view doesn't refresh
ページをリロードすると、変更が表示されますか? –