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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Angular 6-后退按鈕按下觸發(fā)不止一次

Angular 6-后退按鈕按下觸發(fā)不止一次

慕村225694 2021-04-08 17:15:25
我有以下代碼使用角度6來檢測后退按鈕的按下情況。import { Location } from '@angular/common';export class ProductsComponent implements OnInit {constructor( private location: Location){  this.handleBackButtonPress();}  handleBackButtonPress() {    this.subscribed = true;    this.location.subscribe(redirect => {     if (redirect.pop === true) {      alert('this is a backbutton click');     }    });  }}這可以正常工作,我們在按下后退按鈕時收到警報。問題是,如果我們多次訪問同一頁面,它將以我們訪問具有相同組成部分的路線的次數(shù)觸發(fā)警報。注意:我已經(jīng)檢查了類似的解決方案this.location.unsubscribe(),但是找不到類似的函數(shù)location。
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

您只需要在ngOnDestroy生命周期掛鉤破壞組件時退訂。


import { Location } from '@angular/common';

import { SubscriptionLike } from 'rxjs';


export class ProductsComponent implements OnInit, OnDestroy {


  public subscription: SubscriptionLike;


  constructor(private location: Location){

    this.handleBackButtonPress();

  }


  ngOnDestroy() {

    this.subscription.unsubscribe();

  }


  handleBackButtonPress() {

    this.subscription = this.location.subscribe(redirect => {

      if (redirect.pop === true) {

        alert('this is a backbutton click');

      }

    });

  }

}

正如briosheje在評論中提到的那樣,生命周期掛鉤不會在瀏覽器刷新時運行。為此,您需要處理文檔onbeforereload事件中的取消訂閱。


查看完整回答
反對 回復 2021-04-22
?
眼眸繁星

TA貢獻1873條經(jīng)驗 獲得超9個贊

我在這里分析的問題是,每當構(gòu)造函數(shù)運行時,都會發(fā)生問題。它將肯定會調(diào)用您的函數(shù)。因此,您必須檢查此功能是否以前已經(jīng)運行過。 最簡單的答案是


constructor( private location: Location){

 const PopCalled = localStorage.getItem('PopCalled')

 if(!PopCalled)

  this.handleBackButtonPress();

}


handleBackButtonPress() {

 this.subscribed = true;

  this.location.subscribe(redirect => {

  if (redirect.pop === true) {

  localStorage.setItem('PopCalled', true);

  alert('this is a backbutton click');

  }

 });

}

基本上,您必須根據(jù)自己的意愿來管理PopCalled的狀態(tài),據(jù)我所知,這是最簡單的方法。


查看完整回答
反對 回復 2021-04-22
  • 2 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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