【发布时间】:2017-04-07 04:55:13
【问题描述】:
当用户点击按钮时,我正在尝试打开一个新窗口,如下所示:
protected assignActity(type: string): void {
var window = window.open('/#/link');
this.Service.assignActivity(type).subscribe(res => {
window.location = '/#/link/' + res;
console.log(res);
})
}
但它抛出了一个错误:
core.umd.js:3468 TypeError: Cannot read property 'open' of undefined
如何纠正它以使其正常工作?
【问题讨论】:
-
window.open('some url');可以工作,但如果你想使用 angular-universal,你会避免直接操作窗口。 -
所以有没有可能
-
我有这个要求,所以如果您有任何解决方法请提出建议
-
我不习惯 angular-universal 但我看到你可以访问变量
isBrowser(据我所知)。因此,请使用 DI 将这个变量注入您的应用程序,以便您可以在任何地方使用它。然后,当您必须使用window.open时,只需像这样包装它:if (isBrowser) { window.open('some url) } -
@Rhushikesh,我在 angular2 应用程序中使用 mvc 的弹出窗口打开要求苦苦挣扎,您能否提供示例代码,您如何在应用程序中打开浏览器弹出窗口。
标签: angular typescript tabs window