2012-11-02 7 views
6

ダーツが初めてで、js-interopライブラリを使い始めるのに問題があります。私はjquery UIのスライダを自分のページに追加したいのですが、Dartからslider()セットアップコールを実行する方法を理解できません。 js-interopはこれを行う正しい方法ですか?これについてのいくつかの助けは非常に高く評価されるでしょう。あなたのケースではダーツjs-interop with jquery ui

void main() { 
    js.scoped(() { 
    var slider = query('#slider-range'); 
    var options = js.map({ 
     'range': true, 
     'values': [ 17, 67 ] 
    }); 
    // This doesn't work. Element has no method named slider. 
    slider.slider(options); 

    // In javascript it's done like this: 
    // $("#slider-range").slider({ 
    // range: true, 
    // values: [ 17, 67 ] 
    // }); 

    // This alert works. 
    js.context.alert('Hello from Dart via JS'); 
    }); 
} 

答えて

3

、あなたはjs.contextを使用する必要があります。代わりにクエリ( '#スライダレンジ')の$( '#スライダレンジ')。基本的には、js.contextは任意のJavascript変数にアクセスできます。 js.context。$を使用すると、ダーツサイドのjQuery JavaScriptオブジェクト(つまり、$)にアクセスできます。

import 'dart:html'; 
import 'package:js/js.dart' as js; 

void main() { 
    js.scoped(() { 
    var slider = js.context.$('#slider-range'); 
    var options = js.map({ 
     'range': true, 
     'values': [ 17, 67 ] 
    }); 
    slider.slider(options); 
    }); 
} 
+0

お返事ありがとうございます。あなたの解決策は良いようです。しかし、今私は、varオプション行にエラーが表示されます:http://paste2.org/p/2419107任意のアイデア? – 0tto

+1

r14094現在Map.getKeys()がMap.keysに変更されました。 pub.dartlang.orgのjs-interopの最新バージョンには、その変更が加えられた更新が含まれていません。新しいバージョンがランディングされるまでは、パッチを含むgit://github.com/dart-lang/js-interop.gitを直接使用する必要があります。 –

+0

ありがとうアレクサンドル! – 0tto

1

別のサンプルコード:

import 'package:js/js.dart' as js; 

js.context.jQuery(); 
var context = js.context; 
var param = js.map({ 'modal': true, "width":1000, "height":600}); 
js.context.jQuery("#dialog").dialog(param); 

HTML

<script src="packages/browser/interop.js"></script> 

上記のコードではjQueryのを使用してダイアログとしてDIVを開きます。

+0

このコメントはもう有効ではありません。誰でもそれを更新できますか? – maugch