2

jqueryUI スライダーをラップする Dart クラスを作成しています。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に渡されるパラメータを取得する正しい方法は何ですか?

4

1 に答える 1

1

スライド docを見ると、コールバック関数は 2 つのパラメーターを処理しているようです。したがって、次のupdaterように定義する必要があります。

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