fri*_*ley 79 angularjs angular-ui-router ionic-framework
我是Ionic的移动应用程序开发新手.在登录和注销时,我需要重新加载页面,以便刷新数据,然而,$state.go('mainPage')在不重新加载的情况下将用户带回视图 - 从不调用其后面的控制器.
有没有办法在Ionic中清除历史并重新加载状态?
Jim*_*Dev 123
欢迎来到框架!实际上,Ionic中的路由由ui-router提供支持.您应该查看之前的SO问题,找到几种不同的方法来实现这一目标.
如果您只想重新加载状态,可以使用:
$state.go($state.current, {}, {reload: true});
Run Code Online (Sandbox Code Playgroud)
如果你真的想重新加载页面(就像你想要重新引导所有东西一样)那么你可以使用:
$window.location.reload(true)
Run Code Online (Sandbox Code Playgroud)
祝好运!
ABC*_*.ca 25
我发现JimTheDev的答案只有在州定义确定后才有效cache:false.在缓存视图的情况下,您可以执行$ionicHistory.clearCache(),然后$state.go('app.fooDestinationView')如果您从一个状态导航到缓存但需要刷新的状态.
请参阅我的答案,因为它需要对Ionic进行简单的更改,我创建了一个拉取请求:https://stackoverflow.com/a/30224972/756177
Raj*_*war 18
我找到了一个帮助我完成它的解决方案.设置cache-view="false"在ion-view标签解决我的问题.
<ion-view cache-view="false" view-title="My Title!">
....
</ion-view>
Run Code Online (Sandbox Code Playgroud)
eza*_*ain 11
重新加载页面不是最好的方法.
您可以处理状态更改事件以重新加载数据,而无需重新加载视图本身.
在这里阅读ionicView生命周期:
http://blog.ionic.io/navigating-the-changes/
并处理事件beforeEnter for data reload.
$scope.$on('$ionicView.beforeEnter', function(){
// Any thing you can think of
});
Run Code Online (Sandbox Code Playgroud)
小智 6
在我的情况下,我需要清除视图并重新启动控制器.我可以通过这个片段获得我的意图:
$ionicHistory.clearCache([$state.current.name]).then(function() {
$state.reload();
}
Run Code Online (Sandbox Code Playgroud)
缓存仍然有效,似乎只清除了视图.
ionic --version 说1.7.5.
| 归档时间: |
|
| 查看次数: |
109998 次 |
| 最近记录: |