【问题标题】:Open an URL in a new tab在新标签页中打开 URL
【发布时间】:2015-12-16 06:14:47
【问题描述】:

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

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

【问题讨论】:

  • 现在可以在角度路由器中检查这个fix
  • @MurhafSousli 感谢您的回答。

标签: angular


【解决方案1】:

听起来 OP 想知道如何在 angular2 中使用 $window 在新选项卡或窗口中打开链接——而不是区分它们。如果这对任何人都有帮助,请先声明窗口:

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

declare var window: MyWindow;

然后照常打开链接

window.open(url);

【讨论】:

  • 嗨@Dovev Hefetz ......你的回答对我来说就像宝石......谢谢
  • 我们可以在新窗口而不是新标签页中打开该网址吗?
  • @Ricky 新窗口与新标签页是浏览器首选项,无法通过代码 afaik 控制
【解决方案2】:

您可以在锚标记上设置 target="_blank" 以在新标签页中打开 URL。

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2019-12-28
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 2012-05-09
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多