Javascript InnerHTML 不适用于 Quasar/VueJS

Javascript InnerHTML does not work with Quasar/VueJS

基本上,我想根据下面 'counts' 数组中的项目动态创建 tables。 table 的数量及其内容(为简单起见从该示例中删除)可以更改。

这是我的 div容器,这是将附加 innerHTML 的地方。

<div id="divContainer" style="padding: 3%;">
</div>

还有我的 JS:

<script>
const columns = [
  { name: 'desc', align: 'left', label: 'data', field: 'desc' },
  { name: 'tag', align: 'center', label: 'name', field: 'name' },
  { name: 'length', align: 'center', label: 'len', field: 'length' },
  { name: 'value', align: 'left', label: 'val', field: 'value' }
]

var counts = ['5', '6', '7', '8']

var container = document.getElementById('divContainer')
counts.forEach(function (count) {
   container.innerHTML += '<div id="panel-' + count + '" class="text-h4 q-mb-md">' + count
   container.innerHTML += ' \
     <q-table \
       :columns="columns" \
       :rows-per-page-options="['100']" \
       row-key="name" \
       dense \
       separator=horizontal \
     > \
       <template v-slot:body="props"> \
       </template> \
     </q-table> \
    '
     container.innerHTML += '</div>'
   })
</script>

但是,这似乎不起作用。第一个 div 工作正常(输出数组的内容)但 q-table 部分不工作。 没有错误,但也没有输出。 可能innerHTML不支持q-table(Quasar或VueJS框架)

我也试过在 <script> 中插入 html 块,但它给了我一条错误消息:

<script id="table" type="text/javascript">
  <q-table
    :columns="columns"
    :rows-per-page-options="['100']"
    row-key="name"
    dense
    separator=horizontal
  >
    <template v-slot:body="props">
    </template>
  </q-table>
</script>

有人帮忙吗?

执行脚本后,生成的 HTML 似乎是正确的:

这可能是 vue.js 没有解析通过 innerHTML 生成的代码的问题:我认为你应该通过 v-for 生成它。