簡體   English   中英

如何檢查 Angular 中上一頁 url 的條件?

[英]How to check if condition for previous page url in Angular?

我正在使用 Angular 並且我幾乎使用以下代碼獲得上一頁鏈接 URL。

this.router.events
.pipe(filter((evt: any) => evt instanceof RoutesRecognized), pairwise())
.subscribe((events: RoutesRecognized[]) => {
  console.log('previous url', events[0].urlAfterRedirects);
  console.log('current url', events[1].urlAfterRedirects);
});

我得到了上一頁鏈接 url

在此處輸入圖像描述

但現在我想為那個 URL in.ts 文件設置 if 條件。

我嘗試像下面的代碼作為 if 條件。

if (events[0].urlAfterRedirects === '/resources/grid-view'){
      
}

在此處輸入圖像描述

我得到了這個錯誤,所以任何人都可以幫助我正確地制作這個 if 條件語法。

this.router.events
.pipe(filter((evt: any) => evt instanceof RoutesRecognized), pairwise())
.subscribe((events: RoutesRecognized[]) => {
  console.log('previous url', events[0].urlAfterRedirects);
  console.log('current url', events[1].urlAfterRedirects);
  if (events[0].urlAfterRedirects === '/resources/grid-view'){
      // You got it. Now you can redirect from here if you wish to.
  }
});

反應式編程是一種使用事件流概念的編程方法。 我們可以使用管道和其他算子對stream進行彎曲或修改,最后訂閱這些流,從而得到不同來源提供的數據的最終stream。 要了解有關 RxJs 的更多信息,它是一種反應式編程庫,請訪問: https://rxjs.dev/guide/overview

回到問題,

但我想在這個頁面的其他地方有這個條件,所以有什么方法可以存儲在 var 中並制作 if 條件。?

為什么您不會在subscribe塊之外獲取events參數是因為它綁定在回調 function 的本地塊內。 如果您迫切需要將該條件塊放在頁面中的其他位置,那么您必須將該條件塊包裝在一個接受events作為參數的 function 中,然后您可以將events傳遞給它。

像這樣的東西應該允許您在頁面的其他地方擁有events參數:

this.router.events
.pipe(filter((evt: any) => evt instanceof RoutesRecognized), pairwise())
.subscribe((events: RoutesRecognized[]) => {
  console.log('previous url', events[0].urlAfterRedirects);
  console.log('current url', events[1].urlAfterRedirects);
  this.workWithEvents(events);
});
...
workWithEvents(events: RoutesRecognized[]) {
  if (events[0].urlAfterRedirects === '/resources/grid-view'){
      // You got it. Now you can redirect from here if you wish to.
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM