我必须将一些脚本标签嵌入到我的 vue 网络应用程序中。我不确定在哪里添加它,但我选择在 index.html
中添加它们。 #app
div 所在的位置。
在 index.html
下方,我必须嵌入至少 3 或 4 个脚本标签并创建一些 cookie 来更改语言,设置用户的偏好,他们希望被跟踪与否。为此,我需要访问 vuex 商店。
如果我尝试访问 store
表单 index.html
的属性,例如 this.$store.getters.getActiveLanguage;
,我会收到错误。
Uncaught TypeError: Cannot read property 'getters' of undefined
听起来我无法从这里访问商店。我该如何解决它,有人可以帮忙吗?提前谢谢你
编辑:index.html
中的完整代码示例
<!-- Cookie Consent by https://www.FreePrivacyPolicy.com -->
<script type="text/javascript" src="//www.freeprivacypolicy.com/public/cookie-consent/3.1.0/cookie-consent.js"></script>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function() {
cookieconsent.run({ notice_banner_type: "interstitial", consent_type: "express", palette: "dark", language: "en" });
});
</script>
<!-- easy -->
<!-- const language = .localSorage.getItem("language"); -->
<script type="text/plain" cookie-consent="functionality">
document.cookie = "functionalityCookie=en";
this.$store.getters.getActiveLanguage;
</script>
<script type="text/plain" cookie-consent="tracking">
document.cookie = "trackingCookie=true";
</script>
<script type="text/plain" cookie-consent="strictly-necessary">
document.cookie = "strictlyNecessaryCookie=true";
</script>
<!-- end of easy-->
<noscript
>Cookie Consent by <a href="https://www.FreePrivacyPolicy.com/free-cookie-consent/" rel="nofollow noopener">FreePrivacyPolicy.com</a></noscript
>
答案 0 :(得分:0)
在您的情况下,this
等于 window
我要做的是在 mounted
运行 cookieconsent.run
,您可以在其中设置用户的当前语言
new Vue({
el: '#app',
store: store,
mounted () {
const language = this.$store.getters.getActiveLanguage;
cookieconsent.run({
notice_banner_type: "interstitial",
consent_type: "express",
palette: "dark",
language: language
});
}
})