我正在尝试使用[routerLink]
和target="_blank"
导航到内部页面,而无需重新加载整个应用程序。
我可以将页面加载到另一个选项卡中,但是整个应用程序都将重新加载。
HTML:
<a [routerLink]="getRouterLink(parm1,parm2)" target="_blank">
TypeScript:
public getRouterLink = function(parm1: string , parm2: string ) : any[] {
let link : any[] = ['/pages/myPage', {}];
let params = {};
params['parm1'] = parm1;
params['parm2'] = parm2;
link[1] = params;
return link;
};
是否有一种方法可以使它导航到新页面而无需重新加载应用程序?
答案 0 :(得分:1)
没有绝对,没有重新加载应用程序就无法在新标签页中打开应用程序的情况。
您可以创建第二个轻量级的应用程序(这样可以快速加载)并在新标签页中打开它。
或者,如果您使用的是lazy loading,并在新标签页中打开它,则只会加载所需的组件,这会相对较快。
答案 1 :(得分:1)
是否有一种方法可以使它导航到新页面而无需重新加载应用程序?
不会,因为当您打开新标签页时,将从index.js加载应用程序。
答案 2 :(得分:1)
我以前在here上回答过类似的问题。由于Angular的启动方式,无法阻止重新加载。但是简而言之,如果要在新选项卡上打开它,则应在component.ts上使用它。
const url = 'www.domain.com/pages/myPage?params=value';
window.open(url, '_blank');
或者只是在您的component.html上
<a href="www.domain.com/pages/myPage?params=value" target="_blank">
但是,如果必须使用routerLink,则还有其他方法,例如编写自己的自定义指令。通过here进行检查,该人已经编写了一个示例实现。
答案 3 :(得分:0)
页面无法重新加载,即按角度工作! 您可以简单地使用
<a href="#" target="_blank">