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

鍍金池/ 問(wèn)答/HTML/ 怎么樣在vue模版文件里注冊(cè)函數(shù)?

怎么樣在vue模版文件里注冊(cè)函數(shù)?

公司里有一個(gè)項(xiàng)目要求用這個(gè)vaptcha作為驗(yàn)證碼,前端框架選用的是vue,登錄時(shí)要求傳遞驗(yàn)證碼token。我看到文檔里面寫(xiě)要用 vaptchaObj.getToken()來(lái)獲取token,但是在methods里面使用時(shí)報(bào)錯(cuò)。怎么樣在模版文件里注冊(cè) vaptchaObj 這個(gè)函數(shù)?

updated () {
    vaptcha({
      //配置參數(shù)
      vid: '**********', // 驗(yàn)證單元id
      type: 'click', // 展現(xiàn)類型 點(diǎn)擊式
      container: '#vaptcha-container' // 按鈕容器,可為Element 或者 selector
    }).then(function (vaptchaObj) {
      vaptchaObj.render();//執(zhí)行該方法, 生成驗(yàn)證碼
    })
},
methods:{
    login: function(){
        var token = vaptchaObj.getToken();
        ...
    }    
}
回答
編輯回答
我甘愿

vaptcha我沒(méi)用過(guò) 但是它的包我看了一下 是非模塊化的
所以問(wèn)題變成了如何處理一個(gè)非模塊化的包
那么辦法就2種咯
第一個(gè)就是在html里用script標(biāo)簽直接引入
然后webpack里配置一下 具體你可以關(guān)鍵字搜索"webpack externals"
大致的例子就是

module.exports = {
  entry: {
    app: './src/main.js',
  },
  output: {
    path: path.resolve(__dirname, '../dist/static'),
    publicPath: './static/',
    filename: '[name].js'
  },
  // CDN
  externals: {
    'vaptcha':'vaptcha',
  },
}

第二種么
為了好看點(diǎn),讓你能夠?qū)憘€(gè)import vaptcha from 'vaptcha'
可以用webpack別名的配置alias指定路徑,這種方法會(huì)打在一起 不需要額外在script里引入
大致如下

resolve: {
    //...
    alias: {
      'vaptcha': "你的路徑/你的文件名.js"
    }
},

plugins: [
    //...
    new webpack.ProvidePlugin({
      vaptcha: 'vaptcha',
      'window.vaptcha': 'vaptcha'
    })
],
2018年3月21日 08:41
編輯回答
不二心

這個(gè)很基礎(chǔ)的問(wèn)題,明顯你這個(gè)vaptchaObj是在then方法里面獲取的,就把值放在data里面啊

data(){
    return {
        vaptchaObj: null
    }
},
updated () {
    var it = this;
    vaptcha({
      //配置參數(shù)
      vid: '**********', // 驗(yàn)證單元id
      type: 'click', // 展現(xiàn)類型 點(diǎn)擊式
      container: '#vaptcha-container' // 按鈕容器,可為Element 或者 selector
    }).then(function (vaptchaObj) {
      it.vaptchaObj = vaptchaObj
      vaptchaObj.render();//執(zhí)行該方法, 生成驗(yàn)證碼
    })
},
methods:{
    login: function(){
        var token = this.vaptchaObj.getToken();
        ...
    }    
}
2018年8月3日 00:33