我是相当新的淘汰赛,我正在寻找方法来格式化输出。 我看到这是这样的,但当然,我的尝试是不工作的例子。
这里是链接到的jsfiddle: http://jsfiddle.net/cezmp/
<div id="VMDiv">
<table>
<thead>
<tr>
<th>Raw</th>
<th>Formatted</th>
</tr>
</thead>
<tbody>
<tr>
<td data-bind="text : SomeData "> </td>
<td data-bind="text : formatPercent(SomeData())"> </td>
</tr>
</tbody>
</table>
</div>
<script type="text/javascript">
function formatPercent(value) {
return value.toFixed(2) + "%";
}
function vm() {
var self = this;
self.SomeData = ko.observable(62.1795972898);
}
ko.applyBindings(new vm(), document.getElementById("VMDiv"));
</script>
你可以考虑使用一个计算观察到:
div id="VMDiv">
<table>
<thead>
<tr>
<th>Raw</th>
<th>Formatted</th>
</tr>
</thead>
<tbody>
<tr>
<td data-bind="text : SomeData "> </td>
<td data-bind="text : SomeDataFormatted"> </td>
</tr>
</tbody>
</table>
</div>
<script type="text/javascript">
function vm() {
var self = this;
self.SomeData = ko.observable(62.1795972898);
self.SomeDataFormatted = ko.computed(function(){
return self.SomeData().toFixed(2) + "%";
});
}
ko.applyBindings(new vm(), document.getElementById("VMDiv"));
</script>
如果你想要一个更通用的解决方案,你可以做这样的事情
(function () {
ko.extenders.isCurrency = function (target, options) {
var result = ko.dependentObservable({
read: function () {
return Globalize.format(target(), "c");
},
write: target
});
result.raw = target;
return result;
};
} ());
ViewModel = function() {
this.cashIsKing = ko.observable(565345.56435535).extend({ isCurrency: true});
};
ko.applyBindings(new ViewModel());
http://jsfiddle.net/5H5AK/
编辑:不要使用真正的选项,你可以提供的选项字面一个对象,并使用从isCurrency扩展