我如何使用聚合物标记 JSON object 中的更改并从 javascript 传递数据然后渲染一些 child 元素

How do i flag a change in a JSON object using polymer and passing data from javascript then render some child elements

我正在用一组随机的 X 和 O 生成一个 JSON,并尝试使用聚合物中的自定义元素将它们绘制成一个简单的网格。当我第一次打开页面时,一切运行良好,每次我都会看到不同的网格。我还在 index.html 页面上添加了一个按钮,用一组新的 X 和 O 重新生成 JSON,但聚合物元素不会标记事件更改或更新其 child 元素使用新数据。

这似乎只是我的 JSON object 的问题,因为如果我将其更改为字符串,我每次都会收到更改通知...

我写了一个简单的 "forceDB.js" 脚本,它生成 JSON 并将其传递给带有 .setAttribute('layout', data) 的聚合物元素 我如何通知聚合物的变化并让所有 child我的聚合物脚本更新的元素?

JSONobject看起来像这样

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>

我认为我可能遗漏了聚合物中的一个关键点,或者我做错了什么。但是我正在开发一个简单的 X 和 O 游戏来尝试掌握聚合物数据绑定原则,但似乎在哪些方面有所欠缺。

难道布局属性需要:

notify: true

了解如何将布局 属性 数据绑定到 HTML 中的子元素可能会有所帮助。