私は、Knockout-JSでパーセンテージ値を表示/編集するための正しいアプローチ(より一般的には、これらのような再利用可能なコンポーネントを作成する方法)を見つけようとしています。
私のViewModelには、小数として保存されたパーセンテージである観測可能な値があります。たとえば、50%を表す場合は0.5です。ユーザーが混乱しないように(たとえば、「50」)、値をパーセンテージ形式(たとえば、「50」)で表示および編集したいと思います(ユーザーは簡単に混乱します)。
書き込み可能計算
書き込み可能な計算関数を設定することで、簡単なバージョンを作成できました。http://jsfiddle.net/Quango/fvpjN/を参照してください。
ただし、値ごとに再実装する必要があるため、これはあまり再利用できません。エクステンダーを試してみましたが、これにより基本的な値が効果的にマスクされ、使用できなくなりました。
BindingHandlers
必要なのはバインディングハンドラーだと思うので、書く代わりに
<input data-bind="value: commission" />
私は書くだろう
<input data-bind="percentage: commission" />
knockout.jsの「value」bindingHandlerのコードを確認しましたが、バインディング用のコードがたくさんあるので、それを複製したくありません。
だから私の質問は:
この種の値変換を行うための良い/標準/テンプレートの方法はありますか?
そうでない場合は、既存のコードをコピーして貼り付けることなく、「値」バインディングを再利用する方法はありますか?