2017-02-15 104 views
0

我使用的離子產生誰通過HTTP請求從API獲取數據時,我改變看法的應用程序,我看到了控制器的完全加載的數據之前的觀點是:ionic1等待加載之前下一個視圖的HTTP響應

enter image description here

我如何可以加載下一個控制器的數據,只看到最後的結果:

enter image description here

在這裏誰開始的角度變化按鈕:

<ion-item class="item-thumbnail-left item-icon-right" ng-repeat="inscription in inscriptions" ng-click="loadActiProfil({{inscription}})" href="#/app/activite"> 

預先感謝您

回答

0

你不應該等待你的HTTP響應,啓動導航過渡,在一個UX的觀點。離子提供了一種稱爲$ionicLoading的服務,它允許顯示和隱藏微調器(帶有黑色的透明背景&)。你可以用它來讓你的用戶明白他/她應該等待。但足以與我的個人意見。

關於你的需要:

  • 不要使用href改變目前的狀態,你想用ui-sref,因爲它應該採用了棱角分明的UI路由器(做這,當然,離子的路由器)。注意:ui-sref預計州名稱而不是一個URI(例如,"app.home")。
  • 用你的方法loadActiProfil以編程方式從以前的狀態切換到只有一次你的數據是可用的新的,由於服務$state及其方法go(即:$state.go('app.home')會帶你到國家app.home)

TL; DR:如果您需要以編程方式切換當前狀態,請使用$state.go(stateName)而不是ui-sref(或href)。

+0

我用$ state.go()轉到下一個視圖和$ ionicLoading,但我繼續看到加載屏幕後面的加載,它確實很醜。有沒有辦法顯示加載屏幕,等待下一個控制器的http響應,顯示下一個視圖,並最終隱藏laoding屏幕? – tazee

+0

該過程是:1 - 顯示$ ionicLoading,2 - 發送您的http請求,3 - 在http響應CALLBACK: - 3.1隱藏$ ionicLoading - 3.2 $ state.go到您的狀態。你必須顯示離子載入併發送你的http請求到「主要流程」中,然後在給予$ http的回調中完成其餘部分(如果這是你用來執行http請求的)。 – VinceOPS

+0

對不起,我沒有看到我如何做到這一點,如果我在第一個控制器作用域中的請求數據($ scope.data = data)然後state.go(secondcontroller)數據在第二個不可見視圖。 – tazee

相關問題