在 VueJS 中从 CDN 加载 Plaid JS
Loading Plaid JS from CDN in VueJS
我试图让 Plaid 在 VueJS 中工作,但我就是无法加载 JS。
使用 Vanilla JS 效果很好:
https://jsfiddle.net/5vnh2ubs/
但这似乎行不通:
<template>
<div id="app">
{{ pl }}
</div>
</template>
<script>
export default {
beforeMount() {
this.pl = this.Plaid;
},
data() {
return {
pl: null,
};
},
};
</script>
我试过在 index.html 文件中导入脚本并使用 vue-plugin-load-script 但似乎没有任何效果。
我在 index.html 文件中加载 JS 文件时从未遇到过这个问题。
编辑:
这是我尝试使用 vue-plugin-load-script 加载它的方式:
this.$loadScript('https://cdn.plaid.com/link/v2/stable/link-initialize.js')
.then(() => {
console.log(this.Plaid);
})
.catch(() => {
console.log('error');
});
而在 index.html 中,它是 head 标签之间的一个简单脚本标签:
<script src="https://cdn.plaid.com/link/v2/stable/link-initialize.js"></script>
当我检查元素但调用 Plaid returns 时,我可以看到脚本标签在那里。
Plaid CDN 脚本创建一个全局变量:window.Plaid
。但是,您的组件通过 this.Plaid
错误地引用了它。在Vue SFC中,this
是组件实例,它只包含自己在组件定义中声明的属性。 this
不包括来自 window
.
的全局变量
解决方案是使用window.Plaid
:
export default {
data() {
return {
pl: window.Plaid,
}
}
}
我试图让 Plaid 在 VueJS 中工作,但我就是无法加载 JS。
使用 Vanilla JS 效果很好: https://jsfiddle.net/5vnh2ubs/
但这似乎行不通:
<template>
<div id="app">
{{ pl }}
</div>
</template>
<script>
export default {
beforeMount() {
this.pl = this.Plaid;
},
data() {
return {
pl: null,
};
},
};
</script>
我试过在 index.html 文件中导入脚本并使用 vue-plugin-load-script 但似乎没有任何效果。
我在 index.html 文件中加载 JS 文件时从未遇到过这个问题。
编辑:
这是我尝试使用 vue-plugin-load-script 加载它的方式:
this.$loadScript('https://cdn.plaid.com/link/v2/stable/link-initialize.js')
.then(() => {
console.log(this.Plaid);
})
.catch(() => {
console.log('error');
});
而在 index.html 中,它是 head 标签之间的一个简单脚本标签:
<script src="https://cdn.plaid.com/link/v2/stable/link-initialize.js"></script>
当我检查元素但调用 Plaid returns 时,我可以看到脚本标签在那里。
Plaid CDN 脚本创建一个全局变量:window.Plaid
。但是,您的组件通过 this.Plaid
错误地引用了它。在Vue SFC中,this
是组件实例,它只包含自己在组件定义中声明的属性。 this
不包括来自 window
.
解决方案是使用window.Plaid
:
export default {
data() {
return {
pl: window.Plaid,
}
}
}