[英]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.