在Ionic Framework中重新加载页面时如何防止白屏

时间:2015-04-21 04:47:19

标签: javascript angularjs ionic-framework ionic

我正在使用AngularJS和Ionic Framework来构建应用。我的应用需要有一个注销按钮。当用户按下注销按钮时,我想重新加载页面,以便重新启动应用程序并清除所有缓存的数据。根据{{​​3}},我应该能够$window.location.reload(true)。如果我只是通过ionic serve在浏览器中运行应用程序,那该工作正常。但是,当我在实际设备上运行时,屏幕会变为空白而永远不会再返回。如何在不显示空白屏幕的情况下重新加载/刷新移动设备上的页面?

编辑:这是我的实际代码:

angular.module('login').controller('logoutController', ['$state', '$window', function ($state, $window) {
    $state.go('login');
    $window.location.reload(true);
}]);

我在转换到login状态后尝试重新加载该位置。

2 个答案:

答案 0 :(得分:1)

上面的代码运行正常。事实证明,我的问题在于我是如何过渡到logout状态的。如果我在href上使用ion-item,则会导致出现空白屏幕问题:

<ion-item nav-clear menu-close class="item-icon-left" href="#/logout">
    Logout
</ion-item>

但是,如果我在ui-sref上使用ion-item,则不会出现空白屏幕:

<ion-item nav-clear menu-close class="item-icon-left" ui-sref="logout">
    Logout
</ion-item>

不要问我这是怎么回事。这就是我所观察到的。

答案 1 :(得分:0)

我刚在我的应用中测试了$ window.location.reload(true)&#39;注销功能,它工作正常(也在实际的应用程序中)。

为了解决您的问题,请确保

  1. 您在视图的控制器中添加了$window作为依赖项

  2. 通过调用将您的用户发送到应用程序条目视图 退出功能中的$state.go("your-entry-view")

  3. 通过在$stateProvider配置中定义回退状态: $urlRouterProvider.otherwise('/your-entry-views-url')

  4. 如果这没有帮助,请向我们提供一些更多详细信息,例如您要调用注销功能的控制器和状态配置。您的控制台输出也可以提供帮助。