Polymer Node to element属性

时间:2015-01-24 23:10:27

标签: javascript attributes polymer core-elements

我有下一个聚合物元素:

<link rel="import" href="../../lib/polymer/polymer.html">
<polymer-element name="ss-timeline" attributes="musicChooser photoSelector">
    <template>
        <div></div>
    </template>
    <script type="text/javascript">
        (function() {
            "use strict";

            Polymer('ss-timeline', {
                created: function(){
                    this.musicChooser = this.musicChooser || {};
                    this.photoSelector = this.photoSelector || {};
                },
                ready: function () {
                    console.log(this.musicChooser, this.photoSelector);
                },
                musicChooserChanged: function(oldVal, newVal) {
                    console.log('musicChooserChanged', oldVal, newVal);
                }
            });
        })();
    </script>
</polymer-element>

所以我必须像这样进入 musicChooser photoSelector 节点对象

<ss-music-chooser id="musicChooser"></ss-music-chooser>
<ss-timeline musicChooser="{{$.musicChooser}}"></ss-timeline>

但是在控制台输出中我得到了:

Object {} Object {}

如何通过属性传递Node对象?请帮忙。

P.S。我看到核心下拉列表具有相同的 relatedTarget 属性:

<core-icon-button id="trigger" icon="menu"></core-icon-button>
<core-dropdown relatedTarget="{{$.trigger}}">
  <core-menu>
    <core-item>Cut</core-item>
    <core-item>Copy</core-item>
    <core-item>Paste</core-item>
  </core-menu>
</core-dropdown>

所以这应该在理论上有用......

P.P.S。顺便说一句,如果我传入属性musicChooser =&#34; 123&#34;我在我的元素中得到它。但由于某种原因忽略了节点对象。

1 个答案:

答案 0 :(得分:0)

你改变的观察者应该工作,here's an example

我想知道问题是否与您使用automatic node finding有关。 $只能在另一个Polymer元素内部工作(也可能在自动绑定模板中,但我需要仔细检查)。