我知道Angular 1.x中有一个$window service
。现在,我想在新标签页中打开一个URL,我没有找到任何服务来执行此操作。
更新
似乎Angular 2本身不提供像Angular 1.x这样的方法/服务。如果您想在Angular应用内导航,可以参考Angular Router - navigate()。我问这个问题是因为我想使用Angular提供的一些方法进行导航,但没有一个答案是我所期望的。
答案 0 :(得分:9)
听起来OP想知道如何在angular2中使用$ window来打开新标签或窗口中的链接 - 而不是区分它们。如果这有助于任何人,首先声明窗口:
interface MyWindow extends Window {
myFunction(): void;
}
declare var window: MyWindow;
然后像往常一样打开链接
window.open(url);
答案 1 :(得分:6)
您可以在锚标记上设置target =“_ blank”,以在新标签中打开网址。
<a [href]="url" target="_blank">Some URL</a>
答案 2 :(得分:0)
使用nagivationEnd
事件,在您的组件的HTML页面中使用此[routerLink]="moduleMenu.ROUTE"
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
let subMenu: Menus = new Menus();
var appName: string = localStorage.getItem('activeGroupModuleName');
var menuItems: Menus[] = JSON.parse(localStorage.getItem('MenuList')) as Menus[];
if (event.url != '/atpar') {
if (menuItems != null && menuItems != undefined) {
for (var i = 0; i < menuItems.length; i++) {
if (event.url.indexOf(menuItems[i].ROUTE) >= 0 && appName == menuItems[i].APP_NAME) {
subMenu = menuItems[i];
break;
}
}
localStorage.setItem('submenu', JSON.stringify(subMenu));
this.title.setTitle(AtParConstants.PRODUCT_NAME + ' - ' + subMenu.MENU_NAME);
}
else {
this.title.setTitle(AtParConstants.PRODUCT_NAME + ' - ' + 'Dashboard');
}
}
else {
this.title.setTitle(AtParConstants.PRODUCT_NAME + ' - Dashboard');
}
}
});