vue-awesome-swiper 和回调函数

Léo*_*oco 1 javascript callback vue.js vuejs2 swiper.js

我正在使用 Vue.js 2 和 vue-awesome-swiper。

我想在刷卡器的回调中至少做这两件事之一onSlideChangeEnd(swiper)

  1. 能够触发该功能onSwipe()
  2. 进入this.private.privateData

我认为根本问题是我不知道如何访问代表this不是 swiper 或对象 touchEventsTarget 而是我的App.vue.

当我尝试这样做时,this.private.privateData我发现Uncaught TypeError: Cannot read property 'orderFilter' of undefined这是有道理的。

我应该怎么办 ?谢谢。

应用程序.vue

  <template>
  <swiper :options="swiperOption" ref="mySwiper">
    <!-- slides -->
    <swiper-slide>I'm Slide 1</swiper-slide>
    <swiper-slide>I'm Slide 2</swiper-slide>
  </swiper>
</template>

<script>
  export default {
    name: 'carrousel',
    data() {
      return {
        private: {
            privateData : 'private'
        },
        swiperOption: {

          notNextTick: true,
          setWrapperSize :true,
          autoHeight: true,
          onSlideChangeEnd(swiper) {

               ***** DO SOMETHING HERE *****
          },
        }
      }
    },

   methods : {
     onSwipe() {console.log('Swiped')};
   },
    computed: {
      swiper() {
        return this.$refs.mySwiper.swiper
      }
    },
    mounted() {
      console.log('this is current swiper instance object',this.swiper)

    }
  }
</script>
Run Code Online (Sandbox Code Playgroud)

Ber*_*ert 5

使用闭包。

  data(){
    const vue = this;
    return {
      private: {
        privateData : 'private'
      },
      swiperOption: {
        notNextTick: true,
        setWrapperSize :true,
        autoHeight: true,
        onSlideChangeEnd:function(){
          console.log(vue.private.privateData);
          vue.onSwipe()
        }
      }
    }
  },
Run Code Online (Sandbox Code Playgroud)