2014-01-22 90 views
2

我嘗試嵌入jquery UI部件f.e.一個日期選擇器到聚合物鏢webcomponent。如何將jQuery UI部件嵌入聚合物飛鏢webcomponent

的WebComponent的定義是這樣的:

<polymer-element name="my-datepicker"> 
    <template> 
     <div id="datepicker"></div> 
    </template> 
    <script type="application/dart" src="clickcounter.dart"></script> 
</polymer-element> 

這個小部件的初始化在JS做這樣的

<script> 
    $(function() 
    { $("#datepicker").datepicker();}); 
</script> 

我怎麼能初始化窗口小部件中鏢我polymer.dart WebComponent的。

我試着用'dart:js'來調用這個方法,但是我不能用dart:js訪問dom的影子dom。

隨着

shadowRoot.querySelector("#datepicker") 

我可以訪問影子DOM,但我怎麼能叫一個JS方法 - 日期選擇器() - 上

回答

3

你可以傳遞一個元素jQuery的代替一個選擇器。所以下面的代碼應工作:

final element = $['datepicker']; 
js.context.callMethod(r'$', [element]).callMethod('datepicker'); 
+0

final element = $ ['#datepicker'];沒有沒有初始化datepicker,使用final元素= shadowRoot.querySelector(「#datepicker」);有用!謝謝! – mica

+1

哎呀,我離開了前置##。固定。 –

+0

是$ ['datepicker']只是shadowRoot.querySelector(「#datepicker」)的「shortform」還是有區別嗎? – mica

1

只要打電話給元素的JQuery,然後調用日期選擇器()。 djj js包使其易於閱讀:

import 'package:js/js.dart'; 

var element = shadowRoot.querySelector("#datepicker"); 
var $ = context.global[r'$']; 
$(element).datepicker();