2016-10-03 10 views
0

私は私のコンポーネントでフォームを初期化するコードを以下の持っている:Angular2反応型のデフォルトの入力値

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]+")]}); 

変数 this.template.templateIdの値が定義されていませんので、editModeはfalseです。 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

関連する問題