データ モデルを Ember.js のテキスト フィールドにバインドしようとしています。モデルには、通貨の値 (例: $1,000.50) を表すフィールドがあります。その後、ユーザーはこの値を変更できます。
Ember はデータを通貨形式ではなく数値 (1000.50) として受け取ります。ビューを、nice 形式の計算済みプロパティにバインドします。これが私のHandlebarsテンプレートです。
{{input classNames="amount" valueBinding="p.amountFmt"}}</td>
私のモデルは次のようになります。
App.Product = Ember.Object.extend({
amount : 0.00,
amountFmt: function () {
//example. Do actual formatting with this.get('amount');
var formattedNum = '1,000.50';
return formattedNum;
}.property('amount')
});
問題は、ユーザーが入力フィールドの金額を変更すると、モデルの基になる「金額」プロパティが更新されないことです-計算されたプロパティにバインドされているためだと思います。
ユーザーの入力を取得し、必要に応じて解析および検証し、「金額」プロパティに格納する正しい方法は何ですか? 2 つのプロパティ間でバインディング/オブザーバーを使用する必要がありますか? これはどのように機能しますか?
最終的に、「金額」プロパティは、サーバー側で永続化されるものです。計算されたプロパティは、UI の書式設定を行う場所であると考えています。通常、この種の書式設定にはハンドルバー ヘルパーを使用しますが、TextField の valueBinding をハンドルバー ヘルパーの結果と組み合わせることはできません。
よろしくお願いします。アンドリュー