在角度布线中从堆栈中删除前一页

Alo*_*lok 2 angular

我是 angular 的新手,我想尝试在它上面构建我的应用程序。我只有一个普通的两页应用程序。我可以看到路由行为正常,但是我可以看到当我从键盘上按回时,我回到了登录页面。

login -> homepage,后退按钮按下 homepage -> login

现在我想从堆栈中删除登录页面,所以当我们回击键盘时,它什么也不做。就像每次访问此类页面时从堆栈中删除上一页一样。我不希望我的用户在login page没有注销的情况下返回。

主页:

//going to the home page with this click on the button 
<button type="submit" class="btn btn-primary" (click)="submit()">Submit</button>

submit(){
 (<any> window).location = '/home';
}
Run Code Online (Sandbox Code Playgroud)

对于logout,我只是在做同样的事情:

登出:

<div class="logout-link col-4">
   <a routerLink="/">Logout</a>
</div>
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试过的是这样做:

//homepage logout button
[routerlink] = "['/', {clearhistory: true}]" //This disabled the route functioning at all, I could not go to home by tapping on the logout button.

//loginpage submit button
submit(){
  this.route.navigate(['/home'], {clearhistory: true}) //did nothing I can again come back with the keyboard back
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以实现我想要实现的目标。谢谢

Bra*_*don 10

您正在寻找的选项是replaceUrl。这将替换历史记录中的状态,您将无法返回到之前的 URL。

或者,您也可以使用skipLocationChange进行导航,而无需将状态推送到历史记录中。

this.route.navigate(['/home'], { replaceUrl: true });
Run Code Online (Sandbox Code Playgroud)

  • &lt;div [replaceUrl]="true" [routerLink]="['/home']" &gt; 像这样 &lt;/div&gt; (2认同)