2

我尝试将一个 jquery ui 小部件、一个 datepicker 嵌入到一个聚合物飞镖 web 组件中。

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 中初始化该小部件。

我尝试使用 'dart:js' 调用该方法,但我无法使用 dart:js 访问 shadow dom。

shadowRoot.querySelector("#datepicker")

我可以访问 shadow-dom,但我如何调用 JS 方法 - datepicker() - 在那

4

2 回答 2

3

您可以将元素传递给jQuery而不是选择器。所以下面的代码应该可以工作:

final element = $['datepicker'];
js.context.callMethod(r'$', [element]).callMethod('datepicker');
于 2014-01-23T10:42:52.277 回答
1

只需在元素上调用 JQuery,然后调用 datepicker()。dart js 包使其易于阅读:

import 'package:js/js.dart';

var element = shadowRoot.querySelector("#datepicker");
var $ = context.global[r'$'];
$(element).datepicker();
于 2014-01-24T06:07:27.767 回答