[英]Open an URL in a new tab
I know there is a $window service
in Angular 1.x. 我知道Angular 1.x中有一个$window service
。 Now, I want to open an URL in a new tab, I haven't found any service to do this. 现在,我想在新标签中打开一个URL,我没有找到任何服务来执行此操作。
UPDATE: 更新:
Seems Angular 2 itself doesn't provide a method/service like Angular 1.x. 似乎Angular 2本身不提供像Angular 1.x这样的方法/服务。 If you want to navigate inside of an Angular app, you can refer to Angular Router - navigate() . 如果您想在Angular应用程序内导航,可以参考Angular Router - navigate() 。 I'm asking this question because I want to navigate using some method provided by Angular, but none of the answers is what I expect. 我问这个问题是因为我想使用Angular提供的一些方法进行导航,但没有一个答案是我所期望的。
It sounds like the OP wanted to know how to use $window in angular2 to open a link in either a new tab or window - not to distinguish between them. 这听起来像OP想知道如何在angular2中使用$ window来打开新标签或窗口中的链接 - 而不是区分它们。 In case this helps anyone, first declare window: 如果这有助于任何人,首先声明窗口:
interface MyWindow extends Window {
myFunction(): void;
}
declare var window: MyWindow;
then open the link as usual 然后像往常一样打开链接
window.open(url);
您可以在锚标记上设置target =“_ blank”,以在新选项卡中打开URL。
<a [href]="url" target="_blank">Some URL</a>
Use the nagivationEnd
event and in HTML page of your componet use this [routerLink]="moduleMenu.ROUTE"
使用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');
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.