我有一个AugularJS控制器,在初始化时有类似的内容
$scope.urlChanged = false;
and the url is like /firstpage/test
页面中有一个按钮,当用户点击按钮时,执行以下操作
$scope.urlChanged = true;
window.location = '/secondpage/test';
页面按预期进入/ secondpage / test。单击浏览器后退按钮时,页面将返回/firstpage/test
。但$scope.urlChanged
为false
,而非最终值为true。这在Angular有望吗?回去后如何制作$scope.urlChanged = true
?
答案 0 :(得分:2)
导航时不会保存范围变量。事实上,甚至服务都不会保留他们的价值观/国家。当您使用浏览器返回时,您实际上会请求一个全新的角度应用程序。
这不是有角度的错误。这就是浏览器应该如何处理新请求。在这种情况下持久保存数据的方法是将任何数据保存在请求之间持续存在的内容中。
我认为你有三个(ish)选项:
查看此链接以获取LocalStorage支持: https://github.com/grevory/angular-local-storage
答案 1 :(得分:0)
在视图改变时,新控制器进入画面,前一个视图的控制器实例完成。此外,由于每个控制器的私有范围都会在更改视图后被销毁,以避免混淆。