Hi!
I'm having a problem on a init event binding on knockout
This is the code:
ko.bindingHandlers.datepicker = {
init: function (element, valueAccessor, allBindingsAccessor) {
var options = allBindingsAccessor().datepickerOptions || {};
$(element).datepicker(options);
ko.utils.registerEventHandler(element, "change", function () {
var observable = valueAccessor();
observable($(element).datepicker("getDate"));
});
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).datepicker("destroy");
});
element.isFirstRun = true;
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
if (String(value).indexOf('/Date(') == 0) {
value = new Date(parseInt(value.replace(/\/Date\((.*?)\)\
}
if (element.isFirstRun) {
$(element).val(value);
element.IsFirstRun = false;
return;
}
var current = $(element).datepicker("getDate");
if (value - current !== 0) {
$(element).datepicker("setDate", value);
}
}
};
Where is the code snippet "observable ($ (element) .datepicker (" getDate "));" is giving an error "Uncaught TypeError: undefined is not a function" in the file "moment-datepicker.js: 443", and the line of code 443 of this file is the excerpt:
$.fn.datepicker = function (option, val) {
var results = [];
var chain = this.each(function () {
var $this = $(this),
data = $this.data('datepicker'),
options = typeof option === 'object' && option;
if (typeof option === 'string') {
if (data) {
if (val) {
line 443 var result = data[option](val);
if (typeof result !== 'undefined')
results.push(result);
}
}
} else if (!data) {
$this.data('datepicker', (data = new Datepicker(this, $.extend({}, $.fn.datepicker.defaults, options))));
}
});
return results.length == 1 ? results[0]
: results.length ? results
: chain;
};