7

在使用innerHTML 时,在Polymer 中创建与属性的数据绑定的最简单方法是什么?

这是我的意思的一个例子 - http://jsfiddle.net/ry6og1q9/2/

<paper-input inputValue="{{foo}}" label="static foo"></paper-input>

“staticFoo”纸张输入是与 {{foo}} 绑定的数据 - 一种双向数据绑定。

var c = this.$.dynamicFooPlaceHolder;
c.innerHTML = '';
var e = document.createElement('div');
e.innerHTML = '<paper-input id="dynamicFoo" inputValue="{{foo}}" label="dynamic foo"></paper-input>';
c.appendChild(e);

但是,使用 innerHTML 创建的“dynamicFoo”不会以任何方式绑定到 foo 属性,尽管它的标记存在。

我尝试使用 Node.bind() - http://www.polymer-project.org/docs/polymer/node_bind.html来完成此操作, 但它只绑定一种方式。

必须有一个平台实用程序可以进行解析/绑定,但我在任何地方都找不到它。

4

1 回答 1

7

所有 Polymer 元素(对于最新版本)都具有此实用程序方法:

/**
 * Inject HTML which contains markup bound to this element into
 * a target element (replacing target element content).
 * @param String html to inject
 * @param Element target element
 */
injectBoundHTML: function(html, element)

所以你应该能够做类似的事情:

this.injectBoundHTML('<paper-input id="dynamicFoo" inputValue="{{foo}}" label="dynamic foo"></paper-input>', 
  this.$.dynamicFooPlaceHolder);
于 2014-08-21T19:45:38.247 回答