2016-07-14 13 views
1

とおりAngular2フォームBIDIマッピング及び活字体列挙型プロパティ次のテンプレート所定数

<select id="IdCtrl" class="form-control" required [(ngModel)]="obj.enumProperty"> 
    <option *ngFor="let p of EnumVals" [value]="p.value">{{p.name}}</option> 
</select> 

EnumVals: [{name: string, value: number}] 

enumPropertyは、いくつかの活字体enumあります。

ここで、双方向マッピングによってstringという値が生成され、numberではなくなります。私は何か間違っているのですか、それとも正しい行動ですか?

P.S.私はいつも手動でnumberにキャストすることができましたが、私はそれを舞台裏でやってみたいです。

答えて

0

目標は、その値のプロパティは常に文字列がであることです。したがって、Angularはモデルから '文字列'(デフォルトではtoString()を使用)に変換できますが、解析することはできません。残念ながら。

+0

私はそれが*目標*ではないと確信しています。目標は、文字列が型安全でない型安全な言語を持つことです。 –

+0

しかし、なぜあなたは言語を判断しているのですか(フレームワークは言語ではありません)? とにかく、ここでは2つの双方向バインディング= ngModelのobj.enumPropertyとngModelのEnumValsの2つのバインディングを使用しています。 角度変化検出システムは、現在のバインディング(p.value)に関連する要素の変更のみを監視し、ngmodelは、文字列を常に返す '