polymer - 装饰来自 <content> 的元素

标签 polymer

我有一个 form-el,它只是一个容器,必须将所有子元素包装在具有特定类的 div 中。我不想在每个表单元素中重复此 div,而是允许 from-el 包装它们。 我可以遍历所有元素并将它们包装在其他 html 标记中吗?

// Markup
<form-el>
    <input-el label="name" type="text" />
    <span>This must also be wrapped</span>
</form-el>

// Would produce
<form>
    <div class="form-field">
       <label>name</label>
       <input type="text" name="name" />
    </div>
    <div class="form-field">
       <span>This must also be wrapped</span>
    </div>
</form>
// Where '<div class="form-field">' is produced by 'from-el'

最佳答案

实现此目的的一种方法是通过模板重复 <content>为您的 light-dom 量身定制的节点,如下所示:

<polymer-element name="form-el">
<template>

  <template repeat="{{wrappers}}">
    <div style="border: 2px solid orange; padding: 2px; margin: 4px">
      <content select="[key='{{}}']">
    </div>
  </template>

</template>
<script>

  Polymer({
    domReady: function() {
      this.updateWrappers();
    },
    updateWrappers: function() {
      this.wrappers = [];
      for (var i=0, n=this.firstChild; n; n=n.nextSibling) {
        if (n.setAttribute) {
          // attach a selectable key to each light-dom node
          n.setAttribute('key', i);
          // specify a <content> with that key
          this.wrappers.push(i++);
        }
      }
    }
  });

</script>
</polymer-element>

http://jsbin.com/mukip/5/edit

关于polymer - 装饰来自 <content> 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25607546/

相关文章:

Polymer CLI 构建内存不足

javascript - 将 Parse.com 与 Polymer 结合使用

html - 简单的响应式设计\最佳实践

polymer - 在更改排序模式时刷新 dom-repeat - 无需对数组集进行突变即可进行排序

javascript - Polymer:firebase-collection 始终返回空数组

javascript - 当自定义元素中的所有内部绑定(bind)在 Polymer 中准备就绪时,如何获取事件?

css - polymer 中的::part() 与 Microsoft-Edge 不兼容

javascript - window.scrollTo 页面加载不可靠

node.js - CORS 预检请求后 302 重定向到 nodejs 服务器

javascript - Polymer - 通过纸张复选框显示/隐藏 div