我正在使用vue.js和vue-qrcode 我将一些用户数据存储在localStorage中并正确获取。
<template>
<div class="row" style="100%;">
<div class="center-block" style="width:200px">
<qrcode :size="size" :val="val"></qrcode>
</div>
</div>
{{content.last}}
</template>
<script>
import store from '../store'
var content = [];
export default {
data() {
return {
content: store.todoStorage.fetch(),
size: 250,
fgColor: '#007a33',
bgColor: '#ffc72c',
val: "BEGIN:VCARD\r\nVERSION:2.1\r\nN:john;doe\r\nFN:asd " + content.last + "\r\nTEL;TYPE=cell:234\r\nEMAIL;PREF;INTERNET:234234\r\nEND:VCARD"
}
},
components: {
qrcode: VueQr
},
}
</script>
我尝试将字符串放入模板中,它可以工作,但是,QR在某种程度上是错误的。如果我删除变量并仅使用data()val模型中的文本,QR是完美的并且它可以工作。但是,我需要从上面的内容模型中获取4个值。
答案 0 :(得分:1)
很难说没有看到你的整个Vue应用程序。这是肯定的,您不能在content.last
对象中使用val
,因为它将是未定义的。基本上你是在它存在之前分配它。计算对象应该有帮助。
类似的东西:
computed: {
val() {
var content = store.todoStorage.fetch();
return "BEGIN:VCARD\r\nVERSION:2.1\r\nN:john;doe\r\nFN:asd " + content.last + "\r\nTEL;TYPE=cell:234\r\nEMAIL;PREF;INTERNET:234234\r\nEND:VCARD"
}
}
同样,不确定这是否会在没有看到您的代码的情况下解决,但它可能会让您走上正确的道路。