聚合物数据绑定 -

时间:2015-07-03 11:03:54

标签: javascript polymer

有人能告诉我哪里出错了吗?我有一个元素 system-menu ,使用 iron-ajax 查询数据,然后我应该将该数据绑定到我的模板。

<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/iron-menu-behavior/iron-menubar-behavior.html">

<dom-module id="system-menu">
    <template>
    <iron-ajax
        auto
        url="{{url}}"
        params='{"ajax":"true"}'
        handle-as="json"
        on-response="dataLoaded"
        debounce-duration="300">
    </iron-ajax>
    <div class="content"><content></content></div>
</template>

</dom-module>

<script>
    (function() {
        Polymer({
            is: 'system-menu',
            behaviors: [
                Polymer.IronMenubarBehavior
            ],
            ready: function() {
            },
            properties: {
                data: {
                    type: Object,
                    reflectToAttribute: true,
                    notify: true
                }
            },
            attached: function () {
                this.data = [];
            },
            dataLoaded: function (data) {
                this.data = data.detail.response;
            }
        }); 
    })();
</script>

`

这就是我使用元素的方式,

<link rel="import" href="/themes/_components/custom_components/system-menu/system-menu.html">

    <system-menu class="list" url="www.some.site/widget/system-menu-widget/-menuRequest/">
        <template is="dom-repeat" items='{{data}}'>
            <li>{{item.label}}<li>
        </template>
    </system-menu>`

由于某种原因,{{data}}没有绑定任何东西。它只显示chrome检查元素控制台中的{{data}}

1 个答案:

答案 0 :(得分:0)

要访问从data元素之外的system-menu加载的system-menu,您需要将其添加为属性:

<system-menu class="list" url="www.some.site/widget/system-menu-widget/-menuRequest/" data="{{data}}">