简体   繁体   English

在新标签中打开网址

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM