2016-10-03 93 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