我有以下代码,当用户按下表格中的按钮时,它会发出服务器请求并相应地打开新标签或显示错误
search() {
const serial = this.searchForm.get('searchValue').value;
this.service.check(serial)
.subscribe(resp => {
if (resp) {
this.denied = false;
window.open(`/path?serial=${serial}`);
} else {
this.denied = true; //display error in the HTML
}
});
}
和表格(修改)如:
<form (ngSubmit)="search()" [formGroup]="searchForm">
<input formControlName="searchValue">
<button>Search</button>
</form>
问题(正如预期的那样)是浏览器不允许window.open
,除非用户授权。
有没有解决方法?也许我的代码有些重构?操纵工作流程?
P.S:我不想这样做:
newTab = window.open();
this.service.check(serial)
.subscribe(resp => {
if (resp) {
this.denied = false;
newTab.location.href = `/path?serial=${serial}`;
....
因为它不确定服务是否会以真或假的方式响应。