Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 聚合物数据绑定-_Javascript_Polymer - Fatal编程技术网

Javascript 聚合物数据绑定-

Javascript 聚合物数据绑定-,javascript,polymer,Javascript,Polymer,有人能告诉我哪里出了问题吗?我有一个元素系统菜单,它使用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-mod

有人能告诉我哪里出了问题吗?我有一个元素系统菜单,它使用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>

(功能(){
聚合物({
是:‘系统菜单’,
行为:[
聚合物铁分子筛
],
就绪:函数(){
},
特性:{
数据:{
类型:对象,
reflectToAttribute:true,
通知:正确
}
},
附:函数(){
这个.data=[];
},
dataLoaded:函数(数据){
this.data=data.detail.response;
}
}); 
})();
`

这就是我使用元素的方式

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

  • {{item.label}}
  • `

  • 由于某种原因,
    {{data}}
    没有绑定任何内容。它只是在chrome inspect元素控制台中显示
    {{data}
    ,要访问从
    系统菜单
    加载的
    数据
    ,需要将其作为属性添加到
    系统菜单
    元素之外:

    <system-menu class="list" url="www.some.site/widget/system-menu-widget/-menuRequest/" data="{{data}}">
    
    
    
    我认为数据必须以某种方式公开,然后才能在
    dom repeat
    模板中使用它。您可以将其作为
    系统菜单的只读属性发布,然后向您使用的元素添加类似
    项数据=“[[data]]”的内容。@idleherb是正确的。请参阅答案以获取有关如何执行此操作的帮助。@Ben Thomas,我根据您的建议编辑了我的问题,但仍然没有显示任何内容。它在绑定后仍然显示为{{data}}。获取错误
    Polymer::Attributes:can
    t将数组解码为JSON`当您使用
    系统菜单
    时,您需要在其上设置
    数据
    属性。例如:
    。你试过这个了吗?@BenThomas谢谢,现在可以装订了。但我还是不能用它
    现在显示为
    ,但如何在
  • {{item.label}}
  • 中使用它**无法将数组解码为JSON**