如何使用聚合标记JSON对象中的更改,并从javascript传递数据,然后呈现一些子元素
我正在生成一个带有随机X和O的JSON,并尝试使用polymer中的自定义元素将它们绘制到一个简单的网格中。当我第一次打开页面时,一切都正常运行,每次我都会看到不同的网格。我还在index.html页面上添加了一个按钮,该按钮使用一组新的X和O重新生成JSON,但polymer元素不会标记事件更改或使用新数据更新其子元素 这似乎只是我的JSON对象的问题,因为如果我将其更改为字符串,每次都会收到更改通知 我已经编写了一个简单的“forceDB.js”脚本,生成JSON并将其传递给polymer元素,其中包含如何使用聚合标记JSON对象中的更改,并从javascript传递数据,然后呈现一些子元素,javascript,json,object,polymer,rerender,Javascript,Json,Object,Polymer,Rerender,我正在生成一个带有随机X和O的JSON,并尝试使用polymer中的自定义元素将它们绘制到一个简单的网格中。当我第一次打开页面时,一切都正常运行,每次我都会看到不同的网格。我还在index.html页面上添加了一个按钮,该按钮使用一组新的X和O重新生成JSON,但polymer元素不会标记事件更改或使用新数据更新其子元素 这似乎只是我的JSON对象的问题,因为如果我将其更改为字符串,每次都会收到更改通知 我已经编写了一个简单的“forceDB.js”脚本,生成JSON并将其传递给polymer元
.setAttribute('layout',data)
如何通知对polymer的更改并更新polymer脚本的所有子元素
JSON对象如下所示
let data = {
"a1":"",
"a2":"",
"a3":"",
"b1":"",
"b2":"",
"b3":"",
"c1":"",
"c2":"",
"c3":""
};
元素的聚合物脚本面看起来像这样
enter code here
<script>
Polymer({
is:'grid-layout',
properties:{
layout: {
type: Object,
reflectToAttribute : true
},
observers: 'layoutChanged(layout.*)'
},
setLayout: function(newdb){
console.log('new - ' + JSON.stringify(newdb));
this.set('layout', newdb);
},
layoutChanged: function(changedthing){
alert("Layout Changed!");
},
});
</script>
在此处输入代码
聚合物({
is:“网格布局”,
特性:{
布局:{
类型:对象,
reflectToAttribute:真
},
观察员:“布局已更改(布局。*)”
},
setLayout:函数(newdb){
log('new-'+JSON.stringify(newdb));
此.set('layout',newdb);
},
布局更改:功能(更改内容){
警报(“布局已更改!”);
},
});
我想我可能在聚合物中遗漏了一个关键点,或者我做错了什么。但我有一个简单的X和O的游戏,我正在开发它,试图掌握聚合数据绑定的原理,但似乎在哪里还不够。是否布局属性需要:
notify: true
查看如何将layout属性绑定到HTML中的子元素可能会有所帮助。是否layout属性需要:
notify: true
查看如何将layout属性绑定到HTML中的子元素可能会有所帮助。我尝试使用notify:true,但这似乎不起作用。我使用了
document.getElementById(…).setLayout(数据)通过按下forceDB.js中index.html上的按钮执行code>,其中数据
是一组新的X和O的JSON对象。我通过.setLayout({a1:data.a1,a2:data.a2…})
隐式地将每个键值设置为一个参数,找到了一个解决方法。但是,这仍然没有意义,因为完整的JSON不会呈现,但是对每个值的隐式更改会呈现。您是否使用html中的括号将布局绑定到子元素,或者只是在每次更改时使用set手动设置属性?我尝试使用notify:true,但是这似乎不起作用。我使用了document.getElementById(…).setLayout(数据)通过按下forceDB.js中index.html上的按钮执行code>,其中数据
是一组新的X和O的JSON对象。我通过.setLayout({a1:data.a1,a2:data.a2…})
隐式地将每个键值设置为一个参数,找到了一个解决方法。但是,这仍然没有意义,因为完整的JSON不会呈现,但是对每个值的隐式更改会呈现。您是否使用html中的括号将布局绑定到子元素,或者只是在每次更改时使用set手动设置属性?