你如何使用参数从jquery回调到Dart?

时间:2013-02-04 22:03:23

标签: dart jquery-ui-slider

我正在编写一个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的参数的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

查看slide doc,回调函数似乎处理了2个参数。因此,您的updater应该像这样定义:

final updater = new js.Callback.many((event, ui) { query("#diameter").text = 'here';});