chap03 -> Custom bindings -> The currency binding
This commit is contained in:
parent
7c1c4ee8f1
commit
98de2a5947
@ -2,9 +2,24 @@ ko.bindingHandlers.toggle = {
|
|||||||
init: function (element, valueAccessor) {
|
init: function (element, valueAccessor) {
|
||||||
var value = valueAccessor();
|
var value = valueAccessor();
|
||||||
ko.applyBindingsToNode(element, {
|
ko.applyBindingsToNode(element, {
|
||||||
click: function() {
|
click: function () {
|
||||||
value(!value());
|
value(!value());
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
ko.bindingHandlers.currency = {
|
||||||
|
symbol: ko.observable("$"),
|
||||||
|
update: function (element, valueAccessor, allBindingsAccessor) {
|
||||||
|
return ko.bindingHandlers.text.update(element, function () {
|
||||||
|
var value = +(ko.unwrap(valueAccessor()) || 0);
|
||||||
|
var symbol = ko.unwrap(
|
||||||
|
allBindingsAccessor().symbol !== undefined
|
||||||
|
? allBindingsAccessor().symbol
|
||||||
|
: ko.bindingHandlers.currency.symbol
|
||||||
|
);
|
||||||
|
return symbol + value.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,");
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
@ -20,7 +20,7 @@
|
|||||||
<tbody data-bind="foreach:catalog">
|
<tbody data-bind="foreach:catalog">
|
||||||
<tr data-bind="style:lineColor">
|
<tr data-bind="style:lineColor">
|
||||||
<td data-bind="text:name"></td>
|
<td data-bind="text:name"></td>
|
||||||
<td data-bind="text:price"></td>
|
<td data-bind="currency:price, symbol:'€'"></td>
|
||||||
<td data-bind="text:stock"></td>
|
<td data-bind="text:stock"></td>
|
||||||
<td>
|
<td>
|
||||||
<button
|
<button
|
||||||
|
Loading…
x
Reference in New Issue
Block a user