Tengo un componente angular 5 que necesita abrir un enlace en una nueva pestaña, probé lo siguiente:
<a href="www.example.com" target="_blank">page link</a>
cuando abro el enlace, la aplicación se vuelve lenta y abre una ruta como:
localhost:4200/www.example.com
Mi pregunta es: ¿Cuál es la forma correcta de hacer esto en angular?

<a href="https://example.com" target="_blank">page link</a><a [href]="'www.example.com'" target="_blank">Link</a>Respuestas:
Utilice
window.open(). ¡Es bastante sencillo!En su
component.htmlarchivo<a (click)="goToLink("www.example.com")">page link</a>En su
component.tsarchivogoToLink(url: string){ window.open(url, "_blank"); }fuente
href='', para que parezca que se puede hacer clicsimplemente use la URL completa como href así:
<a href="https://www.example.com/" target="_blank">page link</a>fuente
En el
app-routing.modules.tsarchivo:{ path: 'hero/:id', component: HeroComponent }En el
component.htmlarchivo:target="_blank" [routerLink]="['/hero', '/sachin']"fuente
<a [routerLink]="" (click)="openSite(SiteUrl)">{{SiteUrl}}</a>y en su Component.ts
openSite(siteUrl) { window.open("//" + siteUrl, '_blank'); }fuente
Acabo de descubrir una forma alternativa de abrir una nueva pestaña con el enrutador.
En tu plantilla,
<a (click)="openNewTab()" >page link</a>Y en su component.ts, puede usar serializeUrl para convertir la ruta en una cadena, que se puede usar con
window.open()openNewTab() { const url = this.router.serializeUrl( this.router.createUrlTree(['/example']) ); window.open(url, '_blank'); }fuente
Prueba esto:
window.open(this.url+'/create-account')No es necesario usarlo
'_blank'.window.openpor defecto abre un enlace en una nueva pestaña.fuente
Solo agregue
target="_blank"al<a mat-raised-button target="_blank" [routerLink]="['/find-post/post', post.postID]" class="theme-btn bg-grey white-text mx-2 mb-2"> Open in New Window </a>fuente
Algunos navegadores pueden bloquear las ventanas emergentes creadas por
window.open(url, "_blank");. Una alternativa es crear un enlace y hacer clic en él.... constructor(@Inject(DOCUMENT) private document: Document) {} ... openNewWindow(): void { const link = this.document.createElement('a'); link.target = '_blank'; link.href = 'http://www.your-url.com'; link.click(); link.remove(); }fuente