noUiSlider con knockout

Prueba de implementacion de noUiSlider usando binding Handler de knockout

HTML

<link rel="stylesheet" href="https://refreshless.com/noUiSlider/distribute/nouislider.min.css">
<script src="https://refreshless.com/noUiSlider/distribute/nouislider.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/wnumb/1.1.0/wNumb.min.js"></script>
<p><input data-bind="value: myNumberOne, valueUpdate: 'afterkeydown'" /> (round to whole number)</p>

JavaScript

ko.extenders.numeric = function(target, precision) {
    //create a writable computed observable to intercept writes to our observable
    var result = ko.pureComputed({
        read: target,  //always return the original observables value
        write: function(newValue) {
            var current = target(),
                roundingMultiplier = Math.pow(10, precision),
                newValueAsNum = isNaN(newValue) ? 0 : +newValue,
                valueToWrite = Math.round(newValueAsNum * roundingMultiplier) / roundingMultiplier;
 
            //only write if it changed
            if (valueToWrite !== current) {
                target(valueToWrite);
            } else {
                //if the rounded value is the same, but a different value was written, force a notification for the current field
                if (newValue !== current) {
                    target.notifySubscribers(valueToWrite);
                }
            }
        }
    }).extend({ notify: 'always' });
 
    //initialize with current value to make sure it is rounded appropriately
    result(target());
 
    //return the new computed observable
    return result;
};
 
function AppViewModel(one, two) {
		var self = this;
    self.myNumberOne = ko.observable(one).extend({ numeric: 0 });
    self.myNumberOne  = ko.computed(function() {
    
    }, self);
}
 
ko.applyBindings(new AppViewModel(221.2234, 123.4525));