在新标签页中打开一个URL

7
我知道在Angular 1.x中有一个$window服务。现在,我想在新标签页中打开一个URL,但我没有找到任何可以实现此功能的服务。 更新:
似乎Angular 2本身不提供像Angular 1.x那样的方法/服务。如果您想在Angular应用程序内导航,可以参考Angular Router - navigate()。我之所以问这个问题是因为我想使用Angular提供的某些方法进行导航,但是所有答案都不符合我的期望。

1
现在在Angular路由器中可以实现此功能,请查看此修复程序 - Murhaf Sousli
@MurhafSousli 谢谢你的回答。 - Lolo.
3个回答

10

看起来发帖者想知道如何在Angular2中使用$window打开链接而不是区分它们是否在新标签页或窗口中。如果这对任何人有帮助,首先声明window:

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

declare var window: MyWindow;

然后像往常一样打开链接

window.open(url);

嗨,@Dovev Hefetz ... 你的回答对我来说就像是一颗宝石。谢谢。 - Ricky
我们能否在新窗口中打开该URL而不是新标签页中打开? - Ricky
@Ricky 新窗口与新标签页是浏览器的偏好设置,无法通过代码进行控制,据我所知。 - Dovev Hefetz

7
您可以在锚点标记上设置target="_blank",以在新选项卡中打开URL。
<a [href]="url" target="_blank">Some URL</a>

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接