在 webOS 应用程序中,我有一个Mojo.Widget.Slider
用于将整数设置为 0、1 或 2 的值。我自己已经负责对 Slider 值进行四舍五入(尽管有一个功能可以为您执行此操作,但我停止使用它如果这是我的问题的根源,但不是),但我希望 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
似乎并没有做任何事情,尽管文档和示例代码表明这可以工作。任何想法为什么我的代码不起作用以及我可以做些什么来达到预期的效果?
注意:我知道我可以使用不同的小部件来实现这种事情,但我想用 Slider 来做。如果我找不到让这个工作的方法,使用其他东西是我的备份。