从handontable访问vue实例

时间:2018-01-04 01:04:11

标签: vue.js handsontable

我正在尝试从handontable中设置一个vuejs变量。

vuejs变量:

this.dataChanged
以下代码块中的

在手动设置中不可用,任何想法如何访问它?

<template>
<div id="hot-container">
<HotTable :root="root" :settings="hotSettings"></HotTable>
</div>
</template>

<script>
export default {

data() {

return {
  #vuejs variable i want to set from hot
  dataChanged: false,
  root: 'test-hot',
  hotSettings: {
    data: [{something: 0}],
    afterChange: function(changes, src) {
      if (src !== 'loadData') {
        this.dataChanged = true
      }
},
methods: {
  saveChanges: function () {
    if (this.dataChanged){
      //save data
    }
  }
}

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题......我发现在GitHub上发布了一个解决方法,就像这样..

通过这种方式,您可以像往常一样访问所有Vue的数据,方法等。

data() {
   return {
     hotSettings: {
       ...
       afterChange: this.afterChangeVue
       ...
     }
   }
},
methods: {
    afterChangeVue(changes, source) {
      console.log('changes, source => ', changes, source);
      console.log('this.$store => ', this.$store);
    },

以下是原始帖子的链接:https://github.com/handsontable/vue-handsontable-official/issues/7#issuecomment-356190395

答案 1 :(得分:0)

我最终保存到在vue之外声明的变量 - 即在data()声明

之上
var myNewVar = 42
data() {
    #can save to myNewVar from here