在我的代码中,我首先使用 registerEventHandler 来使用 jquery 货币插件,因此它将“€ 123,00”映射到 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*/
}
};
现在,当我在其他地方订阅更改事件时,我仍然收到字符串而不是数字:
self.initial.subscribe(function(newValue) {
console.log("newValue", newValue);
}, null, "change");
在 registerEventHandler 为“更改”设置断点时,我注意到它在我的订阅后被击中。
我错过了什么?