我正在编写一个Dart类来包装jqueryUI滑块。 jquery代码如下所示:
$("#diameter_slider").slider({'range': true, max: 50, min: 0, values: [0, 50],
slide: function( event, ui ) {
//code executed when the slider is moved goes here
});
我的Dart课程如下:
class Slider {
Map options;
String css_id;
String units;
var slider;
Slider( {this.options, this.css_id, this.units} ) {
js.scoped((){
slider = js.context.$(css_id);
final updater = new js.Callback.many((d, i, context) { query("#diameter").text = 'here';});
final opts = js.map({ 'range': true,
'values': [options['min'], options['max']],
'slide': updater});
slider.slider(opts);
js.retain(slider);
});
}
void UpdateText( var event, var ui ){
query("#diameter").text = 'here';
}
}
执行时滑块正确显示(使用Dartium)。但是当移动滑块时,Dartium会崩溃。从javascript获取传递给Dart的参数的正确方法是什么?
答案 0 :(得分:1)
查看slide doc,回调函数似乎处理了2个参数。因此,您的updater
应该像这样定义:
final updater = new js.Callback.many((event, ui) { query("#diameter").text = 'here';});