【问题标题】:How to resolve "Attributes on element-name were data bound prior to Polymer upgrading the element?如何解决“在 Polymer 升级元素之前,元素名称上的属性是数据绑定的?
【发布时间】:2015-02-20 00:52:19
【问题描述】:

从最新版本的 Polymer (0.2.4) 开始,我收到以下关于一堆元素的警告:

us-requests-list 上的属性在 Polymer 升级元素之前是数据绑定的。这可能会导致不正确的绑定类型。

如何解决此警告?我在 Github 上发现了以下问题:

https://github.com/Polymer/polymer-dev/issues/20

他们说的地方:

在升级之前对元素进行的绑定最终可能会 需要属性绑定的属性绑定。

这通常发生在用户加载元素定义时 乱序。

但这意味着什么?对我来说,警告发生在根本没有任何绑定或属性的元素上。

也许有人可以向我解释这些词的含义,以便我可以更具体地说明我的问题。在我看来,警告是随机发生的,我唯一能说的就是它们只发生在嵌套在其他自定义元素中的自定义元素上,但我认为这不会发生在我所有嵌套的自定义元素上。

【问题讨论】:

  • 你能分享你的示例代码

标签: polymer


【解决方案1】:

当我过去遇到这种情况时,这意味着我以错误的顺序定义了我的聚合物元素。因此,如果您在一个文档中定义了两个元素 my-elem1 和 my-elem2,而 my-elem2 依赖于 my-elem1,那么应该首先定义 my-elem1,否则您可能会看到诸如数据未按预期传播之类的错误。

【讨论】:

  • 基本上这意味着您必须订购 html 导入。
【解决方案2】:

您还可以通过使用以下代码(而不是 innerHTML =)在 Polymer.import 的回调中添加元素来避免警告:

Polymer({
     ready: function() {
         Polymer.import(["urlToImport"],
                        this.elementImportComplete.bind(this));
     },
     elementImportComplete: function() {
         // Do it this way to avoid polymer's data binding warnings (and not 
         // by using innerHTML)
         var el = document.createElement(this.feedTypes[this.type]);
         this.$.container.appendChild(el);
     }
 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 2017-07-20
    相关资源
    最近更新 更多