聚合物节点到元素属性



我有下一个聚合物元素:

<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>

所以我必须像这样传递到musicChooserphotoSelectorNode对象中:

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

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

Object {} Object {}

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

附言我看到核心下拉列表具有相同的相关目标属性:

<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>

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

附言顺便说一下,如果我传入属性musicChooser="123",我会在我的元素中得到它。但是由于某种原因忽略了节点对象。

更改后的观察程序应该可以工作,下面是一个示例。

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

最新更新