2013-02-04 26 views
2

我在寫一個Dart類來包裝jqueryUI滑塊。 jQuery代碼看起來像:你如何從參數jquery回調Dart?

$("#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

查看slide doc,回調函數似乎處理2個參數。所以,你的updater應該這樣定義:

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

謝謝!太簡單。 –