Angular2检查Location.back是否有历史可以追溯?

时间:2017-01-10 15:30:22

标签: javascript angularjs angular location

所以我有一个调用的按钮,Location.back()我希望在有历史记录时显示它,是否可以检查位置是否有任何历史记录,或者可以返回?

或者有没有办法访问历史错误?

Angular Version:2.2.3

HTML:

<div (click)="historyBack()">
  <i class="fa fa-angle-left"></i>
</div>

成分:

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

@Component(...)
export class HomeComponent{
  hasHistory = false;
  constructor(
   private _location: Location
  ){
    this.hasHistory = //Magic code
  }
  historyBack(){
    this._location.back();
  }
}

2 个答案:

答案 0 :(得分:1)

您可以使用JavaScript查看用户最后访问的地方:

document.referrer

doc

因此,在您的情况下,您可以检查用户是否可以返回,如下所示:

historyBack() {
if (document.referrer) {
  this._location.back();
 }
}

答案 1 :(得分:0)

Angular 7中,您可以使用Router.navigated属性来检查是否发生了任何导航事件。

constructor(
  private router: Router,
  private location: Location
) {
  this.hasHistory = this.router.navigated;
}