Angular2如何使用location.back()并在应用程序启动的URL处停止?

时间:2017-03-24 00:33:47

标签: angular

在我的ng2应用程序中,我有一个带有this.location.back()的后退按钮。它基本上像Web浏览器的后退按钮一样工作。但是,当我回到ng2应用程序启动时,我希望后退按钮不会执行后退功能,后退按钮将显示为灰色,就像Web浏览器的后退按钮一样?

1 个答案:

答案 0 :(得分:1)

在Angular 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(); 
      }
    }

最后设置[disabled]属性绑定。

<button [disabled]="someBool">Back</button>