0

Nativescript + Typescript/Angular2を使用しています。Nativescript:ページ遷移中のActivityIndi​​catorを表示

読み込みにかなり重い(Tabviewとマップが含まれている)ページがあるので、紹介ページのrouterlinkをタップして、ActivityIndi​​catorを表示して、ページが読み込まれたときに非表示にしたいと考えています。達成するために、Pageクラス(hereのような)のloadイベントを利用するかもしれませんが、ドキュメントではAngular Nativescriptでそれを行う方法は明らかではありません。誰かが例を挙げることはできますか?あなたはこのページのコンポーネントにisLoadingという名前の新しいプロパティを作成し、それをfalseに初期化する必要があります

<ActivityIndicator [busy]="isLoading" [visibility]="isLoading ? 'visible' : 'collapse'" row="1" horizontalAlignment="center" verticalAlignment="center"></ActivityIndicator> 

:あなたはActivityIndi​​catorを示し、先頭に追加するページへ

答えて

0

移動します。

isLoading = false; 

は今、あなたは、このプロパティを持っていることを最後のステップは、あなたのデータはloader.Thisが実装ごとに異なります表示するためにロードされたときに、このプロパティをtrueに設定することです。しかし、説明のために、データの取得を処理するサービスを作成し、私たちのコンポーネントでそれを購読していると考えることができます。そのため

ngOnInit() { 
    this.isLoading = true; //setting isLoading to true in order to show the loader 
    this.SomeService.load() 
    .subscribe(res => { 
     //do stuff with the data 
     //like iterate ,bind etc 
     this.isLoading = false; // setting the isLoading property back to false after doing req. stuff. 
    }); 
} 

を次のように私は、このサービスに加入してactivityIndi​​catorを表示するngOnInit()関数を利用しますと、それはそれです。これがあなたに役立つことを願っています。

+0

問題はまさに実装であり、isLoadingプロパティも何をバインドするのでしょうか。 残念ながら、私は、開始/終了、または外部サービスの非同期アクティビティをロードするデータの種類にスピナをフックする必要はありませんが、ページの読み込みとレンダリング自体には必要ありません。ですから、ngOnInit()ライフサイクルはこの場合は役に立たないと思います。なぜなら、初期化が完了した後、Angular Componentによってトリガーされるからです。 –

+0

私はそれをより良く説明しようとしましょう:ページAからページBへのページ遷移がトリガーされた後(ユーザがページ上のリスト項目をタップしたとき)、ページ遷移が完了するまで、ロードを表示する必要があります。 プラットフォームがルーティングエントリを解決し、新しいページをフレームに入れる時間です。 したがって、ユーザーがまだページAを表示している間にスピナーが表示される可能性があります –

関連する問題