javascript - Polymer通过javascript字符串绑定(bind)数据?

标签 javascript data-binding polymer

我想知道如何执行以下操作:

<polymer-element name="x-foo" attributes="foo">
  <template>
    <div id="content"></div>
  </template>
  <script>
    Polymer('x-foo', {
      foo: true,
      ready: function() {
        this.$.content.insertAdjacentHTML('beforeend', '<x-bar foo="'+this.foo+'"></x-bar>');
      }
    });
  </script>
</polymer-element>

这样this.foo已绑定(bind)数据并更改为 foo如果x-foo,属性将受到影响像这样实现<x-foo foo="{{foo}}"></x-foo>

最佳答案

不幸的是没有。如果您没有使用 foo={{foo}},那么您就没有使用数据绑定(bind)系统。调用 insertAdjacentHTML 的字面结果是:

<div id="content">
  <x-bar foo="true" id="xbar"></x-bar>
</div>

这是静态标记。任何 future 的更改 this.foo 都不会传播到 x-bar,除非您手动更新它:

fooChanged: function() {
  this.$.content.firstElementChild.foo = this.foo;
},
update: function() {
  this.foo = Math.random();
}

但这又带来了另一个不便。一般来说,可以使用自动节点查找来引用x-bar.foo (this.$.xbar)。相反,必须使用 DOM 遍历 (this.$.content.firstElementChild),因为该元素是在 Polymer 完成设置之后才添加的。

关于javascript - Polymer通过javascript字符串绑定(bind)数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22465683/

相关文章:

forms - 如何为复杂的 React 表单实现数据绑定(bind)

android - 如何在 XML 中添加 OR 运算符?

html - 有没有办法指定一个 HTML5 自定义元素在每个文档中只能使用一次?

css - 垂直居中加载微调器覆盖

firebase - 使用 Polymer + Firebase 时在哪里存储 key ?

Javascript/JQuery - 如何重置损坏图像的 onError 函数? (对于第二个损坏的图像)

javascript - 未定义的数组长度检查

javascript - 使用 Algolia InstantSearch.JS 创建一个选择下拉列表

javascript - Angular equals 深度比较并返回每个项目的差异

android - 如何使用数据绑定(bind)动态地在 Activity 中扩充框架布局?