Я хочу открыть внешний URL в новой вкладке из моего Angular 8 SPA.
Ответы на другие вопросы предполагают, что вы можете использовать window.open(url, "_blank")
для достижения этой цели, и это работает для меня, но я ищу что-то, что я могу провести модульный тест.
Основываясь на ответе на другой вопрос , я попытался ввести Document
и вызвать document.open(url, "_blank")
вот так:
import { Component, OnInit, Input, Inject } from "@angular/core";
import { DOCUMENT } from "@angular/common";
@Component( ........ )
export class MyClass implements OnInit {
private externalLink = "https://bbc.co.uk";
constructor(@Inject(DOCUMENT) private readonly document: Document) { }
ngOnInit() {
}
public navigate() {
this.document.open(this.externalLink, "_blank");
}
}
Однако при запуске экран сразу становится белым, и больше ничего не происходит. Ошибки не регистрируются на консоли, и размещение точки останова в методе показывает, что документ внедрен правильно, насколько я могу судить.
Если это не удается устранить, у меня возникает соблазн обернуть службу вокруг window.open()
и введите это.