Skip to content

Instantly share code, notes, and snippets.

@caseyWebb
Created November 7, 2016 14:18
Show Gist options
  • Save caseyWebb/a24ff5a98920b6350446f895f47ab15a to your computer and use it in GitHub Desktop.
Save caseyWebb/a24ff5a98920b6350446f895f47ab15a to your computer and use it in GitHub Desktop.
ko.bindingHandlers.numericInput
'use strict'
const ko = require('knockout')
const _ = require('lodash')
ko.bindingHandlers.numericValue = {
init(el, valueAccessor, allBindings) {
const vstr = ko.pureComputed(() => ko.unwrap(valueAccessor()).toString())
ko.applyBindingsToNode(el, {
textInput: ko.pureComputed({
read() {
if (isNaNvstr() === 'NaN') return
if (allBindings.has('numericValuePadding')) {
const padWidth = allBindings.get('numericValuePadding')
const padding = _.repeat('0', padWidth - vstr().length)
return padding + vstr()
}
else
return vstr()
},
write(v) {
valueAccessor()(parseFloat(v))
}
})
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment