Мне было интересно, есть ли у кого-нибудь работающий пример слайдера JQM с knockoutjs. У меня 2 вопроса:
1) привязка значения к наблюдаемой - я могу связать его изначально, т.е. установить «значение» ползунка, но это не обновляет базовую наблюдаемую при перетаскивании - я думаю, что это связано с размещением элементов в JQM вход для его представления?
2) обновление стиля при изменении свойств min, max, value.
Вот подмножество того, что у меня есть, currentItems изменяется в зависимости от выбора:
workloadViewModel.filterValues = ko.dependentObservable(function () {
var tmp = {};
var itms = this.currentItems();
if (itms.length == 0) return;
tmp.max = itms[0].val;
tmp.min = itms[itms.length - 1].val;
tmp.minRange = this.minRange();
return tmp;
}, workloadViewModel);
ko.bindingHandlers.jqmRefreshSlider = {
update: function (element, valueAccessor) {
ko.utils.unwrapObservable(valueAccessor()); //just to create a dependency
try {
$("input[type=range]").slider("refresh");
} catch (error) {
trace("error refreshing slider");
}
}
};
<div id="filters" data-bind="template: {name: 'filterTemplate', data: filterValues}, jqmRefreshSlider: filterValues"></div>
<script id='filterTemplate' type='text/html'>
<p>min: ${minRange}</p>
<p>min: ${min}</p>
<p>max: ${max}</p>
<div>
<input type="range" name="slider_min" id="slider_min" value="${minRange}" min="${min}" max="${max}" />
</div>
</script>
Большое спасибо за любую помощь, которую вы можете оказать мне.
J