2017-02-15 50 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

相关问题