amc*_*dnl 15 javascript angularjs
是否可以监听路由更改和onwindowunload两者以确认页面离开而不保存更改?
用例:
如果用户点击"取消",则停止更改页面/路线.
我见过几个不同的例子,但没有一个做得很好.
Dai*_*wei 22
演示:http://plnkr.co/edit/Aq8uYg
在演示中,如果您更改输入值,则会在尝试返回时注意到.
如果未确认更改,请收听$locationChangeStart
并使用event.preventDefault()
取消位置更改.
该方法具有以下优点$route.reload()
:当前控制器和模型不会被重新实例化.因此,所有变量都保持不变,因为用户单击"返回"按钮.
Law*_*nes 12
你会发现这$locationChangeStart
是一个你可以监听的事件来检测路线变化.
尝试类似的东西
$rootScope.$on('$locationChangeStart', function (event, next, current) {
/* do some verification */
});
Run Code Online (Sandbox Code Playgroud)
$route.reload()
将阻止路线改变通过.
用户点击或更改网址等之间的区别不会产生影响.由于浏览器在您更改网址时不会重新加载任何资源,因此#
它仍然包含在您的角度逻辑中.这意味着所有这些方法都应该触发$locationChangeStart
事件.
@Jon指出这项$route
服务肯定会对你有用.该.reload()
方法将阻止路由更改完成,但$route
如果您查看它,您可以使用该服务做更多的事情 - 请参阅文档.
归档时间: |
|
查看次数: |
26910 次 |
最近记录: |