我有一个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'
答案 0 :(得分:5)
实现这一目标的一种方法是通过模板重复为您的灯光量身定制的<content>
节点,如下所示:
<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>