Created
December 26, 2013 20:38
-
-
Save mbejda/8138405 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ko.bindingHandlers.datepicker = { | |
init: function(element, valueAccessor, allBindingsAccessor) { | |
//initialize datepicker with some optional options | |
var options = allBindingsAccessor().datepickerOptions || {}; | |
$(element).datepicker(options); | |
//when a user changes the date, update the view model | |
ko.utils.registerEventHandler(element, "changeDate", function(event) { | |
var value = valueAccessor(); | |
if (ko.isObservable(value)) { | |
value(event.date); | |
} | |
}); | |
}, | |
update: function(element, valueAccessor) { | |
var widget = $(element).data("datepicker"); | |
//when the view model is updated, update the widget | |
if (widget) { | |
widget.date = ko.utils.unwrapObservable(valueAccessor()); | |
widget.setValue(); | |
} | |
} | |
}; | |
var model = { | |
test_date: ko.observable(new Date('2012/12/12')) | |
}; | |
ko.applyBindings(model, $("#target")[0]); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div id='target'> | |
<input data-bind='datepicker: test_date'/> | |
<div data-bind="text: test_date"></div> | |
<input data-bind='datepicker: test_date'/> | |
</div> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment