Угловой 6: получить базовую ссылку - PullRequest
0 голосов
/ 12 сентября 2018

Я хотел бы получить в угловой 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 голосов
/ 12 сентября 2018

Вы можете использовать метод prepareExternalUrl из службы Location ( doc )

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, или APP_BASE_HREF, если используется PathLocationStrategy.

0 голосов
/ 12 сентября 2018

Как насчет того, чтобы использовать для этого нативный JS?window.location выдаст объект Location.window.location.origin даст вам базовую ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...