【问题标题】:Angular 2 access base href [duplicate]Angular 2访问基础href [重复]
【发布时间】:2016-11-23 22:06:20
【问题描述】:

我的解决方案中有一个代码可以获取应用程序的 baseHref

constructor( private router: Router) {
    let baseHref = this.router._location._baseHref;

你可以通过私有属性看到我得到了什么。还有其他方法可以获取基本网址吗?又名路由器添加前的url?

我正在使用 angular2 rc4

谢谢

【问题讨论】:

  • 在我看来,这不是重复的:“baseHref”不一定与当前页面的位置相同。

标签: angular angular2-routing


【解决方案1】:

Location 类有 prepareExternalUrl(),它考虑了基本 href。

你也可以尝试注入constructor(@Inject(APP_BASE_HREF) href:string)

如果不明确提供APP_BASE_HREF,似乎无法再注入它。

PlatformLocation 提供有关 URL 的更多详细信息:

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

  constructor(platformLocation: PlatformLocation) {
    console.log((platformLocation as any).location);
    console.log((platformLocation as any).location.href);
    console.log((platformLocation as any).location.origin);
  }

Plunker example

【讨论】:

  • 太棒了! location.prepareExternalUrl("") 让我的日子好过一点。
  • 引用文档:“应用程序开发人员不应直接使用此类。而是使用 Location”
  • 欢迎您,遗憾的是,它没有。我只是想说不鼓励直接使用 PlatformLocation。
  • 按照@SimeonGrigorovich 的建议,使用location.prepareExternalUrl("") 会更好、更安全。
猜你喜欢
  • 1970-01-01
  • 2022-09-28
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多