我找到了一个解决方案,当我可以在AngularJS中使用页面重新加载来移动网址时:
$window.location = "new_url";
$window.location.reload();
它有一个副作用 - $window.location = "new_url"
可以立即更改状态/路由,您可以发现加载的新控制器模板,甚至可以在控制器初始化时发现网络连接,然后只执行$window.location.reload()
代码重新加载页面。
我想到了这里描述的几种方式https://stackoverflow.com/a/26853786/551744
$state.go("state name", "state params", { reload: true });
但对我不起作用,它不会重新加载页面 此代码也不起作用:
$state.go("state name", "state params", { notify: false });
$state.reload();
我使用这种方式,这里描述https://stackoverflow.com/a/25649813/551744:
$state.go("state name", "state params", { notify: false });
setTimeout(function() {
$window.location.reload();
}, 500);
bahaviour非常接近需要(在更改状态后,状态不会加载新的控制器和模板):$state.go("state name", "state params", { notify: false });
仅使用新网址更改网址和$window.location.reload();
实际页面。但这种方式有效:我需要使用setTimeout
等待更改网址时。我不知道为什么,但它不会立即发生。我尝试设置0ms,50ms,100ms,但有时url变化不够快,页面realods与之前的url。
我如何克服:
{ notify: false }
); 答案 0 :(得分:0)