我正忙着使用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'));
}
答案 0 :(得分:0)
事实证明问题发生在这一行:
this.product.GoodsReceivedID = this.GRNIDKey;
问题是this.product已经宣布但尚未初始化......我认为谷歌开发者控制台或angular-cli中没有警告/错误真的很奇怪(Windows命令提示符) )...