In my code I first use registerEventHandler to use the jquery currency plugin so it maps "€ 123,00" to 123,00.
ko.bindingHandlers.currency = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
ko.bindingHandlers.value.init(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext);
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).currency && $(element).currency("destroy");
});
ko.utils.registerEventHandler(element, "change", function () {
var observable = valueAccessor();
observable($(element).asNumber({ region: 'nl-BE' }));
});
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
/*snip snip*/
}
};
Now when elsewhere I subscribe to the change event as follows, I still receive the string rather then the number:
self.initial.subscribe(function(newValue) {
console.log("newValue", newValue);
}, null, "change");
When setting a breakpoint at the registerEventHandler for "change", I notice it gets hit after my subscription.
What am I missing?