如何在 vue 中附加具有良好 table 的 axios 数据

how to append axios data with good table in vue

伙计们,我是 Vue 的新手,所以不知道如何解决这个问题让我先展示代码,然后再展示问题,我正在使用 Vue-Good-table 这里是 link https://xaksis.github.io/vue-good-demos/#/simple-table

<vue-good-table
  title="Product List"
  :columns="columns"
  :rows="rows"
  :paginate="true"
  :lineNumbers="true" />

export default {
data(){
return {
  columns: [
    {
      label: 'productname',
      field: 'product_name',
      filterable: true,
    },
    {
      label: 'productdesc',
      field: 'product_desc',
     // type: 'number',
      html: false,
      filterable: true,
    },

  ],
  rows:[],//get axios return value
 };
},
 methods:{
  next() {
    var _this=this
     this.$http.get('http://localhost:3000/api/companyproducts')
            .then(function (response) {

           _this.rows=response.data
            })
            .catch(function (error) {

                });
    }
  }
}

现在我的问题是如何将这个 axios 响应值附加到好行 table

我猜测您的代码在 http.get 完成后视图没有响应。

您可以通过将 rows 配置为计算的 属性 来完成此操作,因为它会监视其依赖项(即 row_data)的更改

computed: {
  rows: function () { 
    return this.row_data;
  }
}
...
data(){
  return {
    columns: [
    ...
    ],
  row_data:[]
 };
}
...
methods: {
  next() {
    var _this=this
    this.$http.get('http://localhost:3000/api/companyproducts')
      .then(function (response) {
         _this.row_data = response.data
      })  
  }
}
...
created: function() {
  this.next()
}

To "append axios data" you have to install axios first in your project.

所以首先将 axios 安装到您的项目中:

npm install --save axios

然后将您的下一个方法转换为:

  next() {
    axios.get('http://localhost:3000/api/companyproducts')
      .then(response => {
         this.rows = response.data
      }) 
      .catch(error => console.log(error))
  }

Note that you have also to import axios.So when the script tag starts use:

import axios from 'axios'

Axios 是一个很好的包你可以了解更多here

正如我在你的代码中看到的,你没有使用 axios,但是 vue-resource。Vue-resource 也是一个很好的包,所以你可以了解更多 here