在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vue中引用了別的組件 ,如何使this指向Vue對象

vue中引用了別的組件 ,如何使this指向Vue對象

  1. 我引用了VueAwesomeSwiper輪播圖組件,想要在輪播結(jié)束的時候執(zhí)行一些操作。配置項里有個onTransitionStart方法,但是this指向swiper,我想把swiper里的index賦值給vue里的index,但是this指向不對,用that替換也不行,如何解決?

配置項如下


  data() {
      return {
        index:"",
        swiperOptionTop: {
          autoplay:true,
          notNextTick: true,
          speed:3000,
          nextButton: '.swiper-button-next',
          prevButton: '.swiper-button-prev',
          spaceBetween: 10,
          onTransitionStart (swiper) {
            // let that=this
            console.log(this)
            console.log(swiper.activeIndex)
            let index=swiper.activeIndex

            // this.index=index
            // let that.middlePoint=this.lines[index].middlePoint
          }
        },

        lines:{},
        middlePoint:""
      }
    },
  1. 問題是我再onTransitionStart這個swiper方法中打印出的this 是swiper,如何讓這里面的this指向vue對象,我想根據(jù)index操作lines里面的數(shù)據(jù)
回答
編輯回答
練命

import Vue from 'vue'
const $vue = new Vue()

.vue里面的this = 這里的$vue

2017年4月27日 23:33
編輯回答
野橘

你可以在你的方法外面定義一個變量
`var myVue = {}
export default {

name: 'vue_tabledemo1',

// 初始化

data () {
console.log(myVue)
return {
//TODO 這里可以得到這個this
}
},
beforeCreate () {
myVue = this
}
}

created
`

2018年7月27日 13:21
編輯回答
蟲児飛

可以在 onTransitionStart emit 一個事件
用事件來處理

或者 用箭頭函數(shù) 嘗試一下,(沒有試過,自己嘗試)

onTransitionStart: (swiper) => {
            // let that=this
            console.log(this)
            console.log(swiper.activeIndex)
            let index=swiper.activeIndex

            // this.index=index
            // let that.middlePoint=this.lines[index].middlePoint
          }
2017年7月12日 10:08
編輯回答
維她命

我現(xiàn)在習(xí)慣在控制器最頂端定義上 var ctrl = this;
找不到this的地方就用ctrl

2018年2月15日 22:21
編輯回答
凝雅

我的版本是基于Swiper4.0的vue-awesome-swiper ^3.1.3;
直接就()=>{}改變this指向當前vue實例對象 然后this.swiper就是這個swiper對象了;

2017年12月31日 07:38