0
在我的ng2应用程序中,我有一个带有this.location.back()的后退按钮。它基本上像Web浏览器的后退按钮一样工作。但是,我希望后退按钮在回到ng2应用程序启动的位置时不会执行后退功能,后退按钮将变灰,就像Web浏览器的后退按钮一样?Angular2如何使用location.back()并停止在应用程序已启动的URL?
在我的ng2应用程序中,我有一个带有this.location.back()的后退按钮。它基本上像Web浏览器的后退按钮一样工作。但是,我希望后退按钮在回到ng2应用程序启动的位置时不会执行后退功能,后退按钮将变灰,就像Web浏览器的后退按钮一样?Angular2如何使用location.back()并停止在应用程序已启动的URL?
在角RC4路由器可以通过调用router.url
constructor(private router:Router) { console.log(this.router.url); }
只需将支票添加到[disabled]
属性绑定访问当前路由器的状态。
<button [disabled]="this.router.url === '/somePath'">Back</button>
编辑:
如果你想通过调用禁用按钮之前的申请被导航到,抓取当前窗口的历史:
initLength = window.history.length
当你的应用程序初始化。
现在,创建一些服务,后退按钮可以调用每个用户希望导航回时间的函数,并且在当前window.history.length == initLength
禁用它。
someBackMethod() {
if(window.history.length == initLength) {
someBool = false;
}
else {
window.history.back();
}
}
最后设置[禁用]属性绑定。
<button [disabled]="someBool">Back</button>
谢谢你的提示。但是,我期望类似于该选项卡的浏览器历史记录,因为启动路径可能已经过了几次,因为用户实际上可能会按下应用程序的主页按钮来取回应用程序的启动路径。当路径匹配时,此答案中的解决方案可能会使后退按钮过早停止。 – ZZZ
我编辑了答案以反映您需要的内容。感谢您的澄清。 –