在 vue-good 中显示来自 neo4j 数据库的数据 table

Displaying data from neo4j database in vue-good table

我正在使用一种方法从我的 neo4j 检索数据 database.I 想将输出放入 vue-good table。这是我使用的方法

testQuery() {
  var _this=this
  // Get a session from the driver
  const session = this.$neo4j.getSession();
  var arr = [];
  var arr1 = [];
  // Or you can just call this.$neo4j.run(cypher, params)
  session
    .run("MATCH (Ind:Country {name: 'India', result: 'Winners'})<-[: TOP_SCORER_OF]-(n) RETURN n.name  AS data")
    .then(res => {
      this.data = res.records[0].get("data");
      
      console.log(res)
      //var x = JSON.parse(this.data);
       console.log(this.data)
      this.rows.push(this.data);
    })
    .then(() => {
      session.close();
    });
}

我这样称呼vue不错table -

<vue-good-table
      :columns="columns"
      :line-numbers="true"
      :search-options="{
      enabled: true,
      placeholder: 'Search this table'}"
      :pagination-options="{
      enabled: true,
      mode: 'records'}"
      styleClass="tableOne vgt-table"
      :selectOptions="{
      enabled: true,
      selectionInfoClass: 'table-alert__box' }"
      :rows="rows">
      <!-- <div slot="table-actions" class="mb-3">
      <b-button variant="primary" class="btn-rounded">
      Add Button
      </b-button>
      </div>-->

      <template slot="table-row" slot-scope="props">
        <span v-if="props.column.field == 'button'">
          <a href>
            <i class="i-Eraser-2 text-25 text-success mr-2"></i>
            {{ props.row.button }}
          </a>
          <a href>
            <i class="i-Close-Window text-25 text-danger"></i>
            {{ props.row.button }}
          </a>
        </span>
      </template>
    </vue-good-table>

我已经这样定义了行和列 -

  columns: [
    {
      label: "Name",
      field: "name"
    },
    {
      label: "Created On",
      field: "createdAt",
      type: "date",
      dateInputFormat: "yyyy-mm-dd",
      dateOutputFormat: "MMM Do yy",
      tdClass: "text-left",
      thClass: "text-left"
    },
    {
      label: "Percent",
      field: "score",
      type: "percentage",
      tdClass: "text-left",
      thClass: "text-left"
    }
  ],
  rows: []

我在网上搜索了很多解决方案,但我一直收到这个错误

**TypeError:** Cannot create property 'vgt_id' on string 'shikar Dhawan'

人们通过说您需要将字符串转换为 js 对象来回答类似的问题,但后来我得到了这个错误-

vue-good-table.vue?0ccb:237 Uncaught (in promise) SyntaxError: Unexpected token s in JSON at position 0

有人能告诉我哪里错了吗?

看来您只是从数据库中检索名称,而且它是一个字符串。不是 JSON 字符串,因此解码它是无用的。要创建一个对象,这样:

this.rows.push({ name: this.data });

这会将具有 1 属性 name 和数据库值的对象推送到数组。

并不是说您只处理数据库中的 1 条记录。您需要一个循环来遍历所有记录。