我有一個淘汰賽viewmodel有貨幣和百分比內存儲爲數字(而不是文本)。我想在不同的地方以很好的文本格式顯示這些數字。即有些人去獨立span元素中,像這樣:淘汰賽格式數據沒有綁定處理程序
<span data-bind="formatCurrency: totalOutstandingBalance"></span>
別人進入一個表,並使用遞歸來顯示它們。我可以使用綁定的處理程序來格式化這些值,專門爲淘汰賽,像這樣(這工作):
ko.bindingHandlers.formatCurrency = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
ko.applyBindingsToNode(element, {text: valueAccessor, '$#,##0.#0')});
}
};
然而,在某些時候我的代碼中(一個內部的圖形庫),我需要使用類似格式化代碼,像這樣(這個工程與室內庫):
function formatCurrency(value) {
return lib.formatter.formatNumber(value, '$#,##0.#0');
}
console.log(formatCurrency(512.17));
我必須格式化各種事情,百分比,貨幣,整數,雙打,日期等。我現在已經爲每個實例累積了bindingHandlers和泛型函數。我的問題是,我是否可以以某種方式使用這種通用格式貨幣代碼等等,既適用於我的非淘汰賽格式需求,也適用於我的淘汰賽格式,從而無需在我的代碼中使用格式化我的文本文本的雙重功能。
這還是重複我的工作。我將有observables,計算observables(格式化),我仍然有非基於KO格式的通用JavaScript方法。 – Husman
IMO,你需要有一個基於KO和非KO的格式功能。我不認爲有這樣的逃脫。雖然我可能是錯的。 –