0
내가 솔루션을 사용하고 하나의 화재에 대한 모든 jQuery를 UI DatePicker에서와 KnockoutJS 변경 이벤트는 여기에서 찾을 :모든
jQuery UI datepicker change event not caught by KnockoutJS
내가 페이지에 날짜 선택기 컨트롤 수 있습니다. 하나가 변경되면 변경 이벤트가 모두 발생합니다.
RefreshData는 날짜 범위가 변경 될 때 ViewModel의 데이터를 새로 고치는 사용자 지정 함수입니다. 내가 실종 무엇
- 그것의 매우 실망 오후이 제대로 여기
작업을 진행하기 위해 노력하고 내 녹아웃 구속력 :
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");
});
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
var current = $(element).datepicker("getDate");
if (value - current !== 0) {
$(element).datepicker("setDate", value);
}
RefreshData(element.id); //Should only fire once, but is firing for every datepicker on the page
}
};
아마도 당신의 문제를 재현 할 수있는 jsfiddle을 넣을 수 있습니까? – nemesv
흥미로운 것을 보았습니다 - 첫 번째 datapicker가 변경되면 update가 한 번 실행됩니다. 두 번째 datepicker가 변경되면 두 번 실행됩니다. –
왜 'RefreshData'가 필요합니까? 이 기능의 본체를 제공 할 수 있습니까? –