我正在使用引导日期选择器插件,但它没有以正确的方式更新我的可观察属性。在输入中我有正确的值 - 'mm/dd/yyyy',在淘汰属性中 - 阿拉伯时间 + 03 GMT ..... 这是具有相同行为的某人的自定义绑定。
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]);
////////////////////////////////////////////////////////
<input data-bind='datepicker: test_date'/>
<div data-bind="text: test_date"></div>
<input data-bind='datepicker: test_date'/>