0

我正在使用Nativescript + Typescript/Angular2。Nativescript:在頁面轉換正在進行時顯示ActivityIndi​​cator

我有一個非常繁重的頁面加載(它包含一個tabview和一個地圖),所以我想顯示一個ActivityIndi​​cator,當引用頁面的路由器鏈接被點擊並隱藏時,頁面加載。我想我可能會利用Page類的load事件(如提到的here)來實現它,但是在文檔中它並不清楚如何在Angular Nativescript中完成它。任何人都可以提供示例嗎?

回答

0

轉到您要顯示ActivityIndi​​cator並添加頂部的頁面:

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

你將不得不在這個頁面的組件來創建一個名爲isLoading新的屬性,並將其初始化爲false:

isLoading = false; 

現在,你有這個屬性的最後一步是當你的數據加載到顯示loader.This會根據您的實現而改變這一屬性設置爲true。但爲了解釋起見,我們可以考慮你已經編寫了一些服務來處理數據的提取,並且我們正在我們的組件中訂閱它。爲此,我將利用ngOnInit()函數來申請開通此項服務並顯示activityIndi​​cator如下

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. 
    }); 
} 

,就是這樣。我希望這能幫到您。

+0

問題正是實現以及綁定isLoading屬性的問題。 不幸的是,我不需要將spinner掛接到任何類型的數據加載開始/結束,或外部服務異步活動,而是加載和呈現頁面本身。所以我想,在這種情況下,ngOnInit()生命週期是無用的,因爲在初始化完成之後它由Angular Component觸發。 –

+0

讓我試着更好地解釋它:我需要在從頁面A到頁面B的頁面轉換被觸發(當用戶點擊頁面上的listitem時)並且直到頁面轉換完成時顯示加載。 只需要平臺解析路由條目並將新頁面放入框架的時間即可。 因此,當用戶仍在查看頁面A時,微調器可能會顯示 –

相關問題