在 $state.go 之后执行 $window.location.reload(true)
Posted
技术标签:
【中文标题】在 $state.go 之后执行 $window.location.reload(true)【英文标题】:Do $window.location.reload(true) after $state.go 【发布时间】:2015-04-03 14:16:31 【问题描述】:我正在开发这个 Ionic/Cordova 应用程序,我必须在 $state.go 之后重新加载。我就是这样做的
$state.go('app.menu', , reload: true).then(function()
$window.location.reload(true);
);
上面的代码在浏览器上运行良好,当我将它加载到 iPhone 模拟器时出现问题。问题是它没有进入指定状态,即app.menu
。
但如果我删除$window.location.reload(true);
,它确实会进入状态。
你认为是什么问题?
编辑:如果我添加超时,它会起作用,但我不想这样做。像这样
$state.go('app.menu', , reload: false).then(function()
setTimeout(function()
$window.location.reload(true);
, 500);
)
【问题讨论】:
你试过 location.reload(true); @ZeeshanHassanMemon 我刚试过,同样的事情正在发生。 你可以尝试通过设置 cache:false like .state('app.menu', cache:false, url: 'you_url_here', @ZeeshanHassanMemon 我应该删除重新加载行吗? 是的,尽量避免以这种方式重新加载,我不知道你的情况是什么,但在单页应用程序中 .reload 应用程序会产生问题 【参考方案1】:立即使用 $timout。它对我有用。
$timeout(function()
$window.location.reload(true);
);
【讨论】:
【参考方案2】:这对我有用:Source Here。
根据设计,视图被缓存。 在您的状态下尝试 cache: false。
$stateProvider.state('myState',
cache: false,
url : '/myUrl',
templateUrl : 'my-template.html'
)
【讨论】:
以上是关于在 $state.go 之后执行 $window.location.reload(true)的主要内容,如果未能解决你的问题,请参考以下文章
Angular ui-router 中 $state.transitionTo() 和 $state.go() 之间的区别
AngularJS UI-Router 中 ui-sref 和 $state.go 的区别