聚合物处理未定义(子)属性

时间:2017-02-14 09:32:36

标签: javascript data-binding polymer undefined custom-element

最近我们在Polymer应用程序中遇到了一个问题,我们可以通过将值设置为null而不是undefined来解决。所以我们的工具再次正常工作。

但我想把这个问题作为一个机会来了解一下Polymer的内幕。不幸的是,这并不容易解释。所以我设置了small example at JSFiddle并希望您按照以下步骤使用它并回答我的大问题?为什么?"关于它的问题。太棒了!

简介

示例是关于设置undefined的路径,因此我连接了两个自定义元素x-producerx-consumer。通过这些按钮,您可以设置x-producer中绑定到h1的{​​{1}}的值。

快乐的道路:

  1. 点击“设置Foo:A'按钮。 生产者财产变化反映在消费者" foo.bar中。标题。
  2. 点击'设置栏:1'按钮。 生产者的属性变化的子属性,这也反映在消费者" foo.bar中。标题。
  3. 点击'设置栏:未​​定义'按钮。 生产者属性的子属性设置为x-consumer,这也反映在消费者" foo.bar中。标题。
  4. 按照您的需要重复步骤2和3。 生产者子资产的每次变更都反映在消费者的标题中。
  5. 不开心的道路:

    1. 点击“设置Foo:A'按钮。 与快乐路径相同。
    2. 点击'设置栏:1'按钮。 与快乐路径相同。
    3. 点击“设置Foo:B'按钮。 生产者的财产(以及子财产)的变化,反映在消费者" foo.bar中。标题。
    4. 点击“设置Foo:A'按钮。 生产者的属性(以及子属性)更改为第一个属性。消费者" foo.bar"标题再次看到相应的值。
    5. 点击'设置栏:未​​定义'按钮。 生产者属性的子属性设置为undefined。这也反映在生产者的undefined元素中,但不包含在消费者" foo.bar中。标题即可。
    6. 让不快乐的道路再次开心

      只需在侦听器p中将子属性设置为null而不是undefined

      一些想法

      在这两种情况下,执行相同的代码,将子属性设置为_onButtonBarUndefined。但在第一种情况下,属性保持相同的对象,而属性在第二种情况下切换。我不知道将 sub -property设置为undefined是否重要,但我想是的。

      再一次,如果有人能够向我解释导致这种行为的聚合物的内在机制,那就太棒了。非常感谢你。

0 个答案:

没有答案