簡體   English   中英

Vue.js-onload訪問組件方法

[英]Vue.js - Access component methods on onload

我使用vue-jsstripe來實現一些付款。

Stripevue-js一起使用的唯一方法是script.onload 我現在想在onload函數中訪問一些methods 在此示例中,它是使用self.myMethod調用的函數myMethod

為此,我創建了self變量,但是它恰好在onload范圍內未定義。

我該怎么做才能使它可用?

在當前示例中, self引用Window對象。

Component.vue

<template></template>

<script>
export default {
     data() {
         const self = this;
         return {}
     },

     methods: {
         myMethod() {}
     },

     mounted() {
         let script = document.createElement('script');
         script.src = "https://js.stripe.com/v3/";
         script.onload = () => {
             const stripe = Stripe('xxxxxxxx');
             const elements = stripe.elements();

             function setOutcome(result) {
                 self.myMethod();
             }
             card.on('change', function(event) {
                 setOutcome(event);
             });
             document.querySelector('form').addEventListener('submit', function(e) {
                 e.preventDefault();
                 const form = document.querySelector('form');
                 stripe.createToken(card).then(setOutcome);
             });
         };
         document.body.appendChild(script);
     }
 }
</script>
<style></style>

您已經在data方法中定義了一個self變量,該變量在該方法之外不可訪問。

您需要在已mounted掛鈎本身中定義self變量:

mounted() {
  let self = this;
  ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM