У меня возникают проблемы с обновлением подписки на объект, когда обновляются какие-либо наблюдаемые объекты.
Вот модель, с которой я работаю:
searchModel = function (startDate, endDate, searchTerm) {
var self = this;
self.StartDate = ko.observable(startDate);
self.EndDate = ko.observable(endDate);
self.SearchTerm = ko.observable(searchTerm);
};
Вот обработчик привязки, который я использую для обновления наблюдаемых для datepicker:
ko.bindingHandlers.datepicker = {
init: function (element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().datepickerOptions || {};
$(element).datepicker(options).on("changeDate", function (ev) {
var observable = valueAccessor();
observable(ev.date);
});
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
$(element).datepicker("setValue", value);
}
};
Это функция-расширитель, которую я использую для инициализации и подписки на модель поиска:
ko.extenders.getEvents = (function (target, options) {
function getEvents(target) {
console.log(target);
};
getEvents(target());
target.subscribe(getEvents);
return target;
});
Любая помощь будет принята с благодарностью ... Короче говоря, я хотел бы, чтобы страница инициализировалась с помощью наблюдаемых значений модели по умолчанию (ниже), и всякий раз, когда какой-либо из наблюдаемых в объекте обновляется, срабатывает подписка, чтобы я мог «делать что-то».
this.SearchCriteria = ko.observable(new searchModel('', '', '')).extend({
getEvents: null
});
Вот с чем я работаю: JSFiddle
changeDate
не запускается. - person xdumaine   schedule 12.07.2014