Ember.jsのテキストフィールドにデータモデルをバインドしようとしています。このモデルには、通貨価値($ 1,000.50など)を表すフィールドがあります。ユーザーはこの値を変更できます。Ember TextFieldのBindings Computedプロパティ
Emberは、フォーマットされた番号(1000.50)の通貨としてデータを受信します。私は良いフォーマットを持つ計算されたプロパティにビューをバインドします。ここに私のハンドルバーのテンプレートです。以下のように私のモデルに見える
{{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')
});
-Iと仮定ので、計算されたプロパティにバインドされています。
ユーザーの入力を受け取り、必要に応じて解析して検証し、 'amount'プロパティに格納する正しい方法は何ですか? 2つのプロパティ間でバインディング/オブザーバを使用する必要がありますか?これはどのように機能しますか?
最終的に、 'amount'プロパティは、取得されたサーバー側のものです。私は実際には、計算されたプロパティをUI書式設定を行う場所と見なしています。私は通常、この種の書式設定のためにHandlebarsヘルパーを使用しますが、TextFieldのvalueBindingとHandlebarsヘルパーの結果を組み合わせることはできません。
ご協力いただきありがとうございます。 Andrew
ダングジーナ私はこの回答を永遠に探していました!役に立った!私はこれをドキュメントで見たことがありません。それは文書化されていないのですか、それとも私はそれを見逃しましたか? – bfcoder
これは、http://emberjs.com/api/classes/Ember.computed.html#contentに今書かれているようです。計算されたプロパティー関数は、getおよびset関数を提供するハッシュで使用できるようになりました。 –