В приложении WebOS у меня есть Mojo.Widget.Slider
, который я использую, чтобы установить целое число в 0, 1 или 2. Я уже сам забочусь о округлении значения Slider (хотя есть функция, которая сделает это за вас, но я прекратил использовать его в случае, если это было источником моей проблемы, но это не так), но я бы хотел, чтобы ползунок привязывался к закругленному целочисленному положению после того, как пользователь сделал скольжение.Насколько я могу судить, ничего встроенного для этого нет, поэтому я должен сделать это сам.Я думал, что что-то вроде следующего будет работать.
В функции настройки моего помощника по сцене:
this.mySliderModel = {value: 1};
this.controller.setupWidget('mySlider', {minValue: 0, maxValue: 2}, this.mySliderModel
И для прослушивания изменений в ползунке:
this.mySliderChangedEventListener = this.mySliderChanged.bindAsEventListener(this);
Mojo.Event.listen(this.controller.get("mySlider"), Mojo.Event.propertyChange, this.mySliderChangedEventListener);
Изатем слушатель:
MainAssistant.prototype.mySliderChanged = function(event) {
var sliderValue = Math.round(event.value);
switch (sliderValue) {
case 0:
case 1:
case 2:
//it's a good value
//do some stuff
this.mySliderModel.value = sliderValue;
this.controller.modelChanged(this.mySliderModel);
break;
default:
Mojo.Log.info("mySlider error value: ", event.value);
break;
}
};
Но изменение модели и вызов modelChanged
, похоже, ничего не делают, хотя документация и пример кода показывают, что это может работать.Есть идеи, почему мой код не работает и что я могу сделать, чтобы добиться желаемого эффекта?
Примечание: я знаю, что могу добиться такого рода вещей, используя разные виджеты, но я бы хотел сделатьэто с ползунком.Использование чего-то другого - моя резервная копия, если я не могу найти способ заставить это работать.