【发布时间】:2013-01-31 17:09:30
【问题描述】:
我一直在尝试找出在 Knockout-JS 中显示/编辑百分比值的正确方法(更一般地说,我应该如何创建像这样的可重用组件)。
我的 ViewModel 有一个可观察值,它是存储为小数的百分比,例如0.5 代表 50%。我想以百分比格式显示和编辑值(例如“50”),这样用户就不会感到困惑(他们很容易感到困惑)。
可写计算
我可以通过设置一个可写的计算函数得到一个简单的版本:见http://jsfiddle.net/Quango/fvpjN/
但是,这不是很可重用,因为它需要为每个值重新实现。我尝试了一个扩展器,但这有效地掩盖了底层价值,因此使其无法使用。
BindingHandlers
我认为我需要的是一个绑定处理程序,所以不要写
<input data-bind="value: commission" />
我会写
<input data-bind="percentage: commission" />
我查看了 knockout.js 中“值”bindingHandler 中的代码,但那里有很多用于绑定的代码,我不想复制这些代码。
所以我的问题是:
-
是否有一种好的/标准/模板方式来进行这种价值转换?
-
如果没有,有没有办法重复使用“值”绑定而无需复制和粘贴现有代码?
【问题讨论】:
标签: knockout.js valueconverter