首页 文章

如何在Angular 2.0的新选项卡中打开网址?

提问于
浏览
8

我知道有角度1.X的$ window服务 . 现在我想在新标签中打开网址,我找不到任何服务来执行此操作 .

Update: 似乎Angular它本身不提供像ng1这样的方法/服务 . 如果您想在Angular中导航,可以参考:Angular Router - navigate() . 我问这个问题是因为我想导航使用Angular提供的一些方法,但没有一个答案是我所期望的 .

3 回答

  • 8

    这听起来像OP想知道如何在angular2中使用$ window来打开新标签或窗口中的链接 - 而不是区分它们 . 如果这有助于任何人,首先声明窗口:

    interface MyWindow extends Window {
        myFunction(): void;
    }
    
    declare var window: MyWindow;
    

    然后像往常一样打开链接

    window.open(url);
    
  • 0

    您可以在锚标记上设置target =“_ blank”,以在新选项卡中打开URL .

    <a [href]="url" target="_blank">Some URL</a>
    
  • 6

    使用 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');
                }
            }
        });
    

相关问题