第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在單擊瀏覽器后退按鈕 Angular 時(shí)將用戶重定向到特定頁面

如何在單擊瀏覽器后退按鈕 Angular 時(shí)將用戶重定向到特定頁面

天涯盡頭無女友 2021-11-18 21:04:31
所以我必須在幾個(gè)路由上“禁用”點(diǎn)擊瀏覽器后退按鈕,因?yàn)橐呀?jīng)發(fā)送了對(duì) backeng 的請(qǐng)求,并且創(chuàng)建大量類似的 api 請(qǐng)求是不一致的。基本上我正在使用this.location.onPopState(() => {  console.log('pressed back!');  this.router.navigateByUrl('url', { skipLocationChange: true })});在構(gòu)造函數(shù)中檢測(cè)后退按鈕單擊,問題是當(dāng)我單擊后退時(shí),我沒有重定向到所需頁面,而是重定向到上一個(gè)頁面。我試過,location.here= url;但它重新加載窗口并仍然顯示前一頁一秒鐘。請(qǐng),如果您有任何建議,我將不勝感激。
查看完整描述

1 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

我認(rèn)為阻止后退按鈕不是一個(gè)好主意。您可以對(duì)請(qǐng)求使用緩存機(jī)制,這樣它就不會(huì)每次都將請(qǐng)求發(fā)送到服務(wù)器,而是獲得最新的響應(yīng)。請(qǐng)檢查這個(gè)例子:


const URL = 'https://api.punkapi.com/v2/beers';

@Injectable({

  providedIn: 'root'

})

export class HttpService {

  public responseCache = new Map();constructor(private http: HttpClient) {}public getBeerList(): Observable<any> {

    const beersFromCache = this.responseCache.get(URL);

    if (beersFromCache) {

      return of(beersFromCache);

    }

    const response = this.http.get<any>(URL);

    response.subscribe(beers => this.responseCache.set(URL, beers));

    return response;

  }

}

如果您仍然希望您的解決方案阻止用戶返回,則需要使用 Guards 來取消導(dǎo)航。


@Injectable()

export class MyGuardService implements CanActivate {  

  constructor(public auth: AuthService, public router: Router) {} 

    canActivate(): boolean {

      return !this.myService.stillDontWantToGoBack()

    }}

這將適用于所有導(dǎo)航,如果您仍然只想要返回,則需要檢查您要訪問的 URL 是否與 previousUrl 相同。


我的服務(wù).service.ts


previousUrl: string;

constructor(router: Router) {

  router.events

    .filter(event => event instanceof NavigationEnd)

    .subscribe(e => {

      console.log('prev:', this.previousUrl);

      this.previousUrl = e.url;

    });

在 my-guard.guard.ts


canActivate(route: ActivatedRouteSnapshot) {

  return route.url !== this.myService.previousUrl;

}


查看完整回答
反對(duì) 回復(fù) 2021-11-18
  • 1 回答
  • 0 關(guān)注
  • 281 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)