Angular2:使用ngSubmit将String传递给函数时非常奇怪/突然的问题

时间:2017-02-16 12:15:34

标签: html5 angular

我正忙着使用Angular2网络应用并遇到一个非常奇怪的问题...我有一个模型驱动的表单,使用ngSubmit将条形码值传递给findProduct()函数。大约一个小时前一切正常,但现在当我点击扫描按钮时页面重新加载,我在谷歌开发工具控制台中没有得到任何输出。我试图在findProduct()函数中调试条形码,但在控制台中仍然没有输出,只要单击按钮,页面就会重新加载。知道我做错了什么/如何调试这类问题?

我的代码:

html模板:

<form role="form" [formGroup]="productForm" (ngSubmit)="findProduct(productForm.value.barcode)">
    <input class="form-control" type="number" placeholder="Enter Barcode" [formControl]="productForm.controls['barcode']">
    <small [hidden]="productForm.controls['barcode'].valid || (productForm.controls['barcode'].pristine && !productForm.submitted)">barcode required</small>
    <button class="btn btn-submit pull-right" [disabled]="!productForm.valid">Scan</button>
</form>

控制器:

findProduct(barcode: string) {
   console.log(barcode);
   this.product.GoodsReceivedID = this.GRNIDKey;      
   this.restService.findCaptureItem(this.GRNIDKey, barcode)
      .subscribe(
      (res) => {
          console.log(res);
          this.product = res;
      },
      (res) => {
          console.log(res);   
      });
}

服务

findCaptureItem(GRNIDKey: string, barcode: string) : Observable<any> {
    return this.http.get(this.API_URL + 'PurchaseOrder/FindPurchaseOrderItem/' + GRNIDKey + '/' + barcode)
      .map((res: Response) => res.json())
      .catch((error: any) => Observable.throw(error.json().error || 'server error'));
  }

1 个答案:

答案 0 :(得分:0)

事实证明问题发生在这一行:

   this.product.GoodsReceivedID = this.GRNIDKey;      

问题是this.product已经宣布但尚未初始化......我认为谷歌开发者控制台或angular-cli中没有警告/错误真的很奇怪(Windows命令提示符) )...