4
我有一個自定義綁定,我用它來格式化百分比數字。是否可以在計算中使用擴展器?
ko.bindingHandlers.textPercent = {
//init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
// //init logic
//},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var val = parseFloat(ko.utils.unwrapObservable(valueAccessor()));
if ($.isNumeric(val)) {
$(element).text((val * 100).toFixed(2))+"%";
}
else {
$(element).text("#Error");
}
}
}
用法:
<span data-bind="textPercent: amount" ></span>
<span data-bind="textPercent: amount()/2" ></span>
它的工作好,但我希望能夠使用不同數量的固定數字,所以我做了一個擴展:
ko.extenders.percent = function (target, precision) {
var result = ko.computed({
read: function() {
return (target()*100).toFixed(precision)+"%";
},
write: function (newValue) {
target(parseFloat(newValue)/100);
}
});
return result;
};
用法:
<span data-bind="text: amount.extend({ percent: 2 })" ></span>
<span data-bind="text: (amount()/2).extend({ percent: 2 })" ></span>
問題是不是窩rk與內聯計算。
對此提出建議?