如何通过2个自定义元素传递Polymer Object beetwen

时间:2015-11-11 00:32:46

标签: html polymer polymer-1.0

我正在构建一个新的webapp,我需要知道如何在聚合物中的两个自定义元素之间传递一个对象。

在下面的代码中,我在“my-child-element-1”中设置mydata的值,我需要在“my-child-element-2”中看到这个值......我认为它不是很很难做到,但我正在失去理智找到一个好的解决方案......

在我看来,我应该在“my-host-element”中创建一个临时对象来分享价值,但我不相信这个......

这是我的代码:

<dom-module id="my-host-element">
    <template>

        <my-child-element-1     mydata="{{mydata}}"></my-child-element-1>


        <my-child-element-2     mydata="{{mydata}}"></my-child-element-2>

    </template>

    <script>
    Polymer({

        is: "my-host-element",
        properties: 
        {
            mydata: {
                type: Object
            }
        }
      });

    </script>
</dom-module>

谢谢!

2 个答案:

答案 0 :(得分:2)

您的示例看起来应该在没有host元素需要属性的情况下工作, if 子元素的属性设置正确。请记住,Polymer的数据绑定语法基本上是围绕触发和处理自定义事件的语法糖。因此,请查看子元素1,并确保您已将属性设置为在更改时通知。例如:

Polymer({
    is: "my-child-element-1",
    properties: {
        mydata: {
            type: Object,
            notify: true // fire mydata-change CustomEvent on change
        }
    }
  });

答案 1 :(得分:1)

是的,afaik让父元素充当子元素之间的中介是正确的,这意味着它需要拥有自己的属性,即使它仅用于此目的。