2016-10-03 97 views
0

我有以下的,在我的組件初始化表單代碼:可變 this.template.templateIdAngular2反應形式默認輸入值

let editMode: boolean = !!this.template.templateId; 

this.editTemplateForm = this.formBuilder.group({ 
    templateId: {value: editMode ? this.template.templateId : '', validators: [Validators.required, this.templateIdValidator]}, 
    dataStorageTime: {value: editMode ? this.template.dataStorageTime : this.globalParameter.dataStorageTime, Validators.required, Validators.pattern("[0-9]+")]}); 

價值是不確定的,所以editMode是假的。對於dataStorageTime正確的默認值在窗體中的鏈接輸入中設置。 Hovewer,對於templateId輸入設置爲「[object Object]」而不是空字符串。

我正在使用angular2 final realease。

回答

2

這是解決我的問題:

this.editTemplateForm = this.formBuilder.group({ 
templateId: [editMode ? this.template.templateId : '', [Validators.required, this.templateIdValidator]], 
dataStorageTime: [editMode ? this.template.dataStorageTime : this.globalParameter.dataStorageTime, [Validators.required, Validators.pattern("[0-9]+")]] 
}); 
+0

調升你的答案@mdziob,我一直在敲打我的頭的正則表達式模式和嘗試了一堆東西,但從來沒有嘗試添加'+'在模式!現在我的代碼工作:D – Alex