javascript - 通过 Polymer 中的内容标签访问轻型 DOM

标签 javascript templates polymer

上下文:

我正在 Maverics MacOX (10.9.2) 和 Chrome 代理 (34.0.1847.131) 上使用 polymer (0.2.4) 构建 Web 组件。特别是,我试图通过 foo 部分丰富其他模板中包含的两个组件( barcontent )标签。丰富包括添加新属性以在它们各自的内部模板中使用它们(第 (3) 和 (4) 行)。我不确定这种方法是否能正常工作,这正是我所需要的。但这让我遇到了以下问题。

问题:

我正在尝试从 JS 访问 light-DOM通过内容标签包含在模板中的节点。基本上我的意图可以在以下片段中描述。我需要访问节点 foobar在第 (1) 和 (2) 行中:

<polymer-element name="wc-tag"> 
  <template>
     <div id="container">
       <content select="[role='rA']"></content>  
       <content select="[role='rB']"></content>  
     </div>
  </template>
  <script>
     Polymer ('wc-tag',{
        domReady: function () {
           var c  = this.$.container;
           var rA = c.querySelector ('[role="rA"]'); // (1)
           var rB = c.querySelector ('[role="rB"]'); // (2)
           rA.setAttribute ('mode', 'active'); // (3)
           rB.setAttribute ('editable', true); // (4)
           ...
        }
     });
  </script>
</polymer-element>

 <wc-tag>
    <wc-foo role="rA">Foo</wc-foo>
    <wc-bar role="rB">Bar</wc-bar>
 </wc-tag>

然而,rA 中都获得了空值和 rB .我已经确认,在评估代码时,content标签尚未解析( content<div id="container"> 的两个唯一的 child )。

问题:

有谁知道我如何/何时可以/应该访问 foobar

最佳答案

这是一个 jsbin example如何使用 <content> 执行此操作元素和 getDistributedNodes 方法。

<polymer-element name="x-foo">
  <template>
    <h1>Hello from x-foo</h1>
    <content id="content" select='[role="rA"]'></content>
  </template>
  <script>
    Polymer('x-foo', {
      domReady: function() {
        var baz = this.$.content.getDistributedNodes()[0];
        baz.setAttribute('active', true);
      }
    });
  </script>
</polymer-element>

<x-foo>
  <div role="rA">rA element</div>
</x-foo>

关于javascript - 通过 Polymer 中的内容标签访问轻型 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23727825/

相关文章:

javascript - Jasmine SpyOn 测试不起作用

templates - XSLT 2.0 - 使用 Contains() 进行模板匹配

c++ - 是否可以显式特化模板以匹配 lambda?

javascript - 在 Polymer 中无法推送 Array 类型 polymer 属性中的元素

javascript - Polymer 2.0 从子组件访问父组件

Javascript、CSS、按钮在第一次点击后不调用动画函数

javascript - 响应式侧边菜单

c# - 如何避免在选择 DropDownList 时刷新页面

c++ - 头文件中的类模板给我很多错误

javascript - polymer 核心-菜单双事件