Angular 角度6将表单发布到新选项卡

Angular 角度6将表单发布到新选项卡,angular,typescript,Angular,Typescript,我想弄清楚如何在一个有角度的窗体上设置一个目标。我想提交的形式发生在一个新的标签,所以我有下面的 <form id="formLanding" role="form" (ngSubmit)="onSubmit()" #landingForm="ngForm" [target]="'_blank'"> ... </form> ... 但是,angular不会将其发布到新选项卡。我已经读过关于noNgForm的内容,但这不适用于我的用例,因为我已经做了大量与Angula

我想弄清楚如何在一个有角度的窗体上设置一个目标。我想提交的形式发生在一个新的标签,所以我有下面的

<form id="formLanding" role="form" (ngSubmit)="onSubmit()" #landingForm="ngForm" [target]="'_blank'">
...
</form>

...

但是,angular不会将其发布到新选项卡。我已经读过关于noNgForm的内容,但这不适用于我的用例,因为我已经做了大量与Angular的表单验证相关的工作,并且该指令删除了表单引用。有人知道如何在仍然使用角形表单的情况下将表单发布到新选项卡吗?

好吧,这并不漂亮,但这是我无法满足的要求。下面是我如何解决的

创建另一个表单元素,该元素将使用get请求在新页面中打开表单(弹出窗口拦截器无法阻止表单加载,因此此操作有效)

在angular managed表单的单击处理程序中,您可以执行所需的任何逻辑

this.htmlForm.nativeElement.submit();
然后在组件的init上,您可以读取这些表单值并自动提交

ngOnInit() {
    this.activatedRoute.queryParams.subscribe(params => {
      if (params && params.autoSubmit) {

        this.formData.zipCode = params.zip;
        //submit this.formData to the server. 
      }
    });
  }

好吧,这并不漂亮,但这是一个我无法回避的要求。下面是我如何解决的

创建另一个表单元素,该元素将使用get请求在新页面中打开表单(弹出窗口拦截器无法阻止表单加载,因此此操作有效)

在angular managed表单的单击处理程序中,您可以执行所需的任何逻辑

this.htmlForm.nativeElement.submit();
然后在组件的init上,您可以读取这些表单值并自动提交

ngOnInit() {
    this.activatedRoute.queryParams.subscribe(params => {
      if (params && params.autoSubmit) {

        this.formData.zipCode = params.zip;
        //submit this.formData to the server. 
      }
    });
  }

一个新的标签意味着?一个新的浏览器标签。我想做的是将表单提交到一个新选项卡中。以便我可以更改原始选项卡的内容。基本上,我试图阻止弹出窗口拦截器阻止新选项卡,但唯一的方法是在新选项卡中发布。在新选项卡中打开它意味着它必须再次加载angular应用程序,我不认为这会解除对adYes的阻止。它必须在新选项卡中重新加载,但这是意料之中的。这不是添加阻止问题。这是一个弹出窗口阻止程序问题。当调用window.open时,弹出窗口拦截器会停止它们。解决这个问题的一种方法是将一个新的标签贴到一个新的标签上,这意味着一个新的浏览器标签。我想做的是将表单提交到一个新选项卡中。以便我可以更改原始选项卡的内容。基本上,我试图阻止弹出窗口拦截器阻止新选项卡,但唯一的方法是在新选项卡中发布。在新选项卡中打开它意味着它必须再次加载angular应用程序,我不认为这会解除对adYes的阻止。它必须在新选项卡中重新加载,但这是意料之中的。这不是添加阻止问题。这是一个弹出窗口阻止程序问题。当调用window.open时,弹出窗口拦截器会停止它们。解决这个问题的一种方法是发布到新选项卡