什么是聚合物1.0等效于injectBoundHTML()?聚合物1.0 - injectBoundHTML()替代
(即追加HTML字符串到聚合物元件内的节点,并具有数据绑定解析)
一个JSbin例子 - http://jsbin.com/jufase/edit?html,output
编辑:没有足够的SO名气接受我自己的答案,但它应该低于某个地方。 TL; DR - 使用“DOM绑定”模板
什么是聚合物1.0等效于injectBoundHTML()?聚合物1.0 - injectBoundHTML()替代
(即追加HTML字符串到聚合物元件内的节点,并具有数据绑定解析)
一个JSbin例子 - http://jsbin.com/jufase/edit?html,output
编辑:没有足够的SO名气接受我自己的答案,但它应该低于某个地方。 TL; DR - 使用“DOM绑定”模板
绑定是通过默认属性,和连字符可以用来表示市值:
<element inner-h-t-m-l="{{prop}}"></element>
看起来这是不是一个真正的支持功能还,看@kevinpschaaf的评论: https://github.com/Polymer/polymer/issues/1778
使用dom-bind,我应该能够满足我的用例,例如http://jsbin.com/caxelo/edit?html,output
虽然技术知识指出它并没有得到很好的支持。以下似乎是诀窍。
function injectBoundHTML(html, element) {
var template = document.createElement('template', 'dom-bind');
var doc = template.content.ownerDocument;
var div = doc.createElement('div');
div.innerHTML = html;
template.content.appendChild(div);
while (element.firstChild) {
element.removeChild(element.firstChild);
}
element.appendChild(Polymer.Base.instanceTemplate(template));
}
如果你的HTML已经被解析过,那就用“doc.importNode(sourceNode,true);”而不是获取/设置innerHTML。
感谢各位为我自己的需求更新的原型:在聚合物中生成标记,因为dom-repeat无法执行此操作。
标签的搜索引擎: 聚合物的生成动态动态标记自定义元素DOM重复DOM重复应答器dynamique dynamiquement
http://jsbin.com/wiziyeteco/edit?html,output
<!doctype html>
<html>
<head>
<title>polymer</title>
<script src="https://rawgit.com/webcomponents/webcomponentsjs/master/webcomponents-lite.js"></script>
<link rel="import" href="http://polygit.org/components/paper-button/paper-button.html">
</head>
<body>
<dom-module id="x-test">
<template>
<div id="container"></div>
</template>
</dom-module>
<script>
Polymer({
is: 'x-test',
ready: function() {
// Declare custom elements
var customElements = [
{name:'paper-button', title:'A'},
{name:'paper-button', title:'B'},
{name:'paper-button', title:'C'},
{name:'paper-button', title:'D'},
];
// Declare auto-binding, as we are at the root HTML document
var domBind = document.createElement('template', 'dom-bind');
domBind.customElements = customElements;
var domBindDocument = domBind.content.ownerDocument;
// Declare custom elements
for (var i in domBind.customElements) {
var item = domBind.customElements[i];
var elem = domBindDocument.createElement(item.name);
elem.setAttribute('raised', 1);
elem.innerHTML = item.title;
domBind.content.appendChild(elem);
}
// Append to #container
this.$.container.appendChild(domBind);
}
});
</script>
<x-test></x-test>
</body>
</html>
虽然这并结合“托”,但它仍然呈现的输出一个文字字符串以及html内的任何绑定都没有解析。 http://jsbin.com/woxato/edit?html,output – techknowledgey