Javascript 聚合物数据绑定-
有人能告诉我哪里出了问题吗?我有一个元素系统菜单,它使用iron ajax查询数据,然后我应该将该数据绑定到我的模板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
<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**