Angular 6:获取基本href

时间:2018-09-12 12:33:50

标签: angular angular-router

我想获得角度6分量。 我是通过PlatformLocation#getBaseHrefFromDOM来管理的。

但是开发人员不应该使用此api。还有其他方法可以在运行时获取/CTX-ROOT/assets/tiny-editor/langs/cs.js吗?

  constructor(
    private zone: NgZone,
    private platformLocation: PlatformLocation) {
  }

  public ngAfterViewInit() {
    var baseHref = this.platformLocation.getBaseHrefFromDOM();
    Observable.fromPromise(tinymce.init({
      selector: '#' + this.elementId,
      entity_encoding: "raw",
      menubar: false,
      branding: false,
      elementpath: true,
      language_url: baseHref + '/assets/tiny-editor/langs/cs.js',

2 个答案:

答案 0 :(得分:1)

您可以通过prepareExternalUrl服务(doc)使用Location方法

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

//...
constructor(
    private zone: NgZone,
    private location: Location) {
}


public ngAfterViewInit() {
    Observable.fromPromise(tinymce.init({
      selector: '#' + this.elementId,
      entity_encoding: "raw",
      menubar: false,
      branding: false,
      elementpath: true,
      language_url: this.location.prepareExternalUrl('assets/tiny-editor/langs/cs.js')

编辑:我认为这仅在使用PathLocationStrategy

时有效
  

如果使用HashLocationStrategy,则此方法还将添加哈希;如果使用PathLocationStrategy,则将添加APP_BASE_HREF。

答案 1 :(得分:0)

您如何使用本机JS? window.location将提供Location对象。 window.location.origin将为您提供基本的href。