2

我正在编写一个 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
                      });

我的飞镖类看起来像:

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的参数的正确方法是什么?

4

1 回答 1

1

查看幻灯片文档,回调函数似乎处理 2 个参数。所以,你updater应该这样定义:

final updater = new js.Callback.many((event, ui) { query("#diameter").text = 'here';});
于 2013-02-04T22:16:16.553 回答