没有阴影DOM的自定义元素:获取元素的最佳方法

默克

通过使用Polymer,我学会了很好地理解轻型DOM(无论元素中的内容)与本地DOM(故事的“隐藏”面)之间的区别。

<iron-form>(用法类似<form is="iron-form"></form>)有点不同,因为它没有本地DOM。

现在,我有一个定制的小部件(在GitHub中实际可用),您可以在其中进行以下操作:

    <hot-form-validator success-message="Record saved!">
      <form is="iron-form" id="form" method="post" action="/stores/polymer">
        <paper-input required id="name" name="name" label="Your name"></paper-input>
        <paper-input required id="surname" name="surname" label="Your surname"></paper-input>
        <paper-button type="submit" raised on-click="_submit">Click!</paper-button>
      </form>
    </hot-form-validator>

现在,hot-form-validator需要获取表单,然后在表单中查找特定按钮(带有type=submit)。所以,我有:(记住那this.form是表格):

attached: function(){
  var paperButton = this.form.$$('paper-button[type=submit]');
  ...
}

它可以工作,但是这样做没有意义,因为它$$仅适用于本地DOM,而纸质按钮实际上位于表单的轻型DOM中。

attached: function(){
  var paperButton = this.form.queryEffectiveChildren('paper-button[type=submit]');

这行得通,但我想知道这是否是最好的方法。

或...由于没有影子DOM,我是否应该为此而烦恼,而又因为没有灯光/本地DOM来处理,所以像往常一样简单地使用DOM?

贡特·佐克鲍尔

参见https://www.polymer-project.org/1.0/docs/devguide/local-dom#light-dom-children

如果您将添加id到,<content id="someId"></content>则可以使用

var result = this.getContentChildren('#someId');

然后在结果中查找所需的元素。

例如,您可以为<content>“提交”按钮创建特定的标签,例如

<dom-module ...>
  <template>
    ...
    <content></content>
    <content id="submitButton" select="paper-button[type=submit]"></content>
    ...
  </template>
</dom-module>

然后使用

var submitButton = this.getContentChildren('#submitButton')[0];

该代码有效

this.form.$$('paper-button[type=submit]');

因为this.$$转发到querySelectorAll(...)幕后的DOM封装只是在模拟,并且不会阻止querySelectorAll(...)找到本地DOM子代以外的其他子代。

您也可以使用

var submitButton = Polymer.dom(this).querySelector('paper-button[type=submit]');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Windows Server 2012上的自定义WPF工具提示中没有阴影

来自分类Dev

Polymer自定义元素阴影DOM问题

来自分类Dev

在阴影DOM元素中具有阴影DOM子级

来自分类Dev

根据自定义元素的宽度/高度样式重新调整阴影DOM元素的大小

来自分类Dev

如何在聚合物自定义元素中呈现阴影DOM

来自分类Dev

使用Polymer.dart从动态添加的自定义元素内部操作阴影DOM

来自分类Dev

带有阴影,圆角和自定义drawRect的UIView

来自分类Dev

具有阴影根的元素会破坏文本选择

来自分类Dev

有没有一种方法可以自定义Faktor-IPS扩展属性的输入元素?

来自分类Dev

如何使用角度元素定义自定义元素方法

来自分类Dev

DART lang中的自定义元素/阴影根与JavaScript中的阴影根

来自分类Dev

访问自定义2维C ++容器元素的最佳方法

来自分类Dev

在Javascript中按自定义顺序放置数组元素的最佳方法

来自分类Dev

d3-具有自定义DOM元素的多个叠加图表

来自分类Dev

将在 disconnectedCallback 中从 DOM 中删除的自定义元素的所有引用设为空

来自分类Dev

有没有实现新的自定义元素规范的环境?

来自分类Dev

有没有实现新的自定义元素规范的环境?

来自分类Dev

如何访问插槽内的自定义元素的 light dom?

来自分类Dev

CardView中的CardView没有阴影

来自分类Dev

THREE.js没有阴影

来自分类Dev

Unity 5.3.2 Pro,没有阴影

来自分类Dev

没有阴影的材质设计按钮

来自分类Dev

uiview下没有阴影

来自分类Dev

没有根元素的Android自定义视图布局声明

来自分类Dev

自定义模板容器中没有默认构造函数的元素

来自分类Dev

foreach中的自定义元素在剔除中没有预期的模型

来自分类Dev

模板解析错误:创建自定义表单元素时没有 NgControl 提供程序

来自分类Dev

将自定义绑定的值传递给自定义绑定中添加的DOM元素

来自分类Dev

自定义元素与网络组件自定义元素

Related 相关文章

  1. 1

    Windows Server 2012上的自定义WPF工具提示中没有阴影

  2. 2

    Polymer自定义元素阴影DOM问题

  3. 3

    在阴影DOM元素中具有阴影DOM子级

  4. 4

    根据自定义元素的宽度/高度样式重新调整阴影DOM元素的大小

  5. 5

    如何在聚合物自定义元素中呈现阴影DOM

  6. 6

    使用Polymer.dart从动态添加的自定义元素内部操作阴影DOM

  7. 7

    带有阴影,圆角和自定义drawRect的UIView

  8. 8

    具有阴影根的元素会破坏文本选择

  9. 9

    有没有一种方法可以自定义Faktor-IPS扩展属性的输入元素?

  10. 10

    如何使用角度元素定义自定义元素方法

  11. 11

    DART lang中的自定义元素/阴影根与JavaScript中的阴影根

  12. 12

    访问自定义2维C ++容器元素的最佳方法

  13. 13

    在Javascript中按自定义顺序放置数组元素的最佳方法

  14. 14

    d3-具有自定义DOM元素的多个叠加图表

  15. 15

    将在 disconnectedCallback 中从 DOM 中删除的自定义元素的所有引用设为空

  16. 16

    有没有实现新的自定义元素规范的环境?

  17. 17

    有没有实现新的自定义元素规范的环境?

  18. 18

    如何访问插槽内的自定义元素的 light dom?

  19. 19

    CardView中的CardView没有阴影

  20. 20

    THREE.js没有阴影

  21. 21

    Unity 5.3.2 Pro,没有阴影

  22. 22

    没有阴影的材质设计按钮

  23. 23

    uiview下没有阴影

  24. 24

    没有根元素的Android自定义视图布局声明

  25. 25

    自定义模板容器中没有默认构造函数的元素

  26. 26

    foreach中的自定义元素在剔除中没有预期的模型

  27. 27

    模板解析错误:创建自定义表单元素时没有 NgControl 提供程序

  28. 28

    将自定义绑定的值传递给自定义绑定中添加的DOM元素

  29. 29

    自定义元素与网络组件自定义元素

热门标签

归档