dart - 如何访问通过 Polymer 定义的自定义元素的内部元素

标签 dart polymer

我正在使用 Dart 在 Polymer 中创建自定义元素。我想从标签内部获取一些内容,如下所示:

<my-element>
  <name>doof</name>
</my-element>

在用于处理 my-element 元素的 dart 代码中,我发现很难获取“name”元素的内容。下面的代码说明了我所做的一些尝试:

@CustomTag('my-element')
    class MyElement extends PolymerElement {

     MyElement.created() : super.created() {

           // Will always find the first element in the document. That quickly
           // gets confusing when I have multiple instances of  <my-element> in the
           // document.
           final Element nameElement = querySelector("name");

           // Returns null
           final Element nameElement = shadowRoot.querySelector("name");
     }
}

...所以我很困惑:-)有人有什么想法吗?

最佳答案

首先,留下created除了一些局部变量初始化之外,单独的构造函数。
覆盖生命周期回调,例如 attachedready反而。 querySelector("name");那么应该可以工作。如果您获取文档中的第一个元素,那么您应该使用 this.querySelector("name"); (取决于您的进口)shadowRoot.querySelector("name");适用于 <template> 内的元素您的标签<my-element>不适合它的 child (就像你的问题一样)。

@CustomTag('my-element')
    class MyElement extends PolymerElement {

     MyElement.created() : super.created();

     @override
     void ready() {

           // Will always find the first element in the document. That quickly
           // gets confusing when I have multiple instances of  <my-element> in the
           // document.
           final Element nameElement = this.querySelector("name");
     }
}

关于dart - 如何访问通过 Polymer 定义的自定义元素的内部元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27864644/

相关文章:

ios - 拉动以刷新 iOS 外观和感觉

android - 相当于 Swift “extensions” 的 Dart 是什么?

polymer - importHref 函数在哪里?

json - polymer 子菜单/页面导航需要脚本吗?

Dart 使用公钥和私钥对字符串进行加密和解密

firebase - 如何更新 firebase 数组中的 map 数据? ( flutter )

javascript - 视口(viewport)刷新后 polymer DOM 更新

css-selectors - 我如何编写影子 dom *在*大多数 child 之后选择特定元素?

flutter - 我可以找到 “flutter pub list”或 “flutter pub search”命令行工具吗?

function - 就绪功能togglePanel()不工作