【发布时间】:2016-02-12 08:28:43
【问题描述】:
我有一个场景,我想创建将与 Polymer 的 dom-repeat 一起使用的动态 template 元素。
我目前的原型如下(JSbin demo):
var domRepeat = document.createElement('template', 'dom-repeat');
domRepeat.items = ['a', 'b', 'c'];
var div = domRepeat.content.ownerDocument.createElement('div');
div.innerHTML = '[[item]]';
domRepeat.content.appendChild(div);
document.body.appendChild(domRepeat);
Polymer.dom.flush();
然而,这并没有按预期工作。输出是:
[[item]]
[[item]]
[[item]]
而不是:
a
b
c
由于[[item]]被打印了3次,我猜dom-repeat本身可以工作,但数据绑定不行。
情节扭曲:但如果我将示例从dom-repeat 更改为dom-bind,那么数据绑定确实 起作用。更改示例,灵感来自this answer (JSBin demo):
var domBind = document.createElement('template', 'dom-bind');
domBind.item = 'Hello World!';
var div = domBind.content.ownerDocument.createElement('div');
div.innerHTML = '[[item]]';
domBind.content.appendChild(div);
document.body.appendChild(domBind);
Polymer.dom.flush();
正如预期的那样,输出是Hello World!。
关于如何让第一个示例工作的任何想法?
【问题讨论】:
标签: javascript templates polymer polymer-1.0