在新标签中打开网址

时间:2015-12-16 06:14:47

标签: angular

我知道Angular 1.x中有一个$window service。现在,我想在新标签页中打开一个URL,我没有找到任何服务来执行此操作。

更新
似乎Angular 2本身不提供像Angular 1.x这样的方法/服务。如果您想在Angular应用内导航,可以参考Angular Router - navigate()。我问这个问题是因为我想使用Angular提供的一些方法进行导航,但没有一个答案是我所期望的。

3 个答案:

答案 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');
            }
        }
    });