我正在使用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
状态后尝试重新加载该位置。
答案 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;注销功能,它工作正常(也在实际的应用程序中)。
为了解决您的问题,请确保
您在视图的控制器中添加了$window
作为依赖项
通过调用将您的用户发送到应用程序条目视图
退出功能中的$state.go("your-entry-view")
或
通过在$stateProvider
配置中定义回退状态:
$urlRouterProvider.otherwise('/your-entry-views-url')
如果这没有帮助,请向我们提供一些更多详细信息,例如您要调用注销功能的控制器和状态配置。您的控制台输出也可以提供帮助。