2017-11-24 2 views
0

jQueryプラグインを簡単に使用するために、ダーツとの基本的なjQuery相互運用を試みています。jQueryとDart interop with call()

私は古典$("#elementID") DOMクエリの選択とこれまでのところ、私はこの

@JS() 
external JQuery jQuery(String query); 

@JS("jQuery") 
abstract class JQuery extends intlTelInput.JQuery { 
    factory JQuery() {} 
    external static Plugins get fn; 
} 

は、だから私はJSを達成することができます開発した$.fn.pluginX.methodY()

のプラグインゲッターの両方を達成するための方法を把握しようとしている ダートJQuery.fn.pluginX.methodY()とダートjQuery("#elementID") とJS $.fn.pluginX.methodY()$("#elementID")

しかし、私はwoul最終的なコードを持つ、クラスで何かをJQuery("#elemID")を達成したいとdはみかんが好き:

@JS("jQuery") 
abstract class JQuery extends intlTelInput.JQuery { 
    factory JQuery() {} 
    external static JQuery call(String query); // <- this replacing jQuery(..) 
    external static Plugins get fn; 
} 

答えて

1

はjQueryの呼び出し可能なことはありませんダートクラスへの呼び出しをという名前の静的メソッドを追加します。 良いニュースは、呼び出し可能なJS interopオブジェクトを返すgetterをjQueryにするだけで同じ効果を得ることができるということです。

代わりにこれを試してみてください:

@JS("jQuery") 
    external JQuery get jQuery; 

    @JS() @anonymous 
    abstract class JQuery extends intlTelInput.JQuery { 
     external JQuery call(String query); 
     external Plugins get fn; 
    }