【发布时间】:2018-08-28 16:38:16
【问题描述】:
在 VueJS 中,有没有办法在模板或脚本中插入字符串 within 字符串?例如,我希望以下内容显示 1 + 1 = 2 而不是 1 + 1 = {{ 1 + 1 }}。
<template>
{{ myVar }}
</template>
<script>
export default {
data() {
"myVar": "1 + 1 = {{ 1 + 1 }}"
}
}
</script>
编辑:为了更好地说明我为什么需要这个,这是我的实际数据的样子:
section: 0,
sections: [
{
inputs: {
user: {
first_name: {
label: "First Name",
type: "text",
val: ""
},
...
},
...
},
questions: [
...
"Nice to meet you, {{ this.section.inputs.user.first_name.val }}. Are you ...",
...
]
},
...
],
this.section.inputs.user.first_name.val 将由用户定义。虽然我可以将问题属性重建为计算属性,但我宁愿保持现有数据结构完整。
【问题讨论】:
-
"myVar": "1 + 1 = "+(1+1)?但为什么?您可能以错误的方式接近它,告诉我们您想要实现的实际目标,可能会有更好的方法。 -
我没有很好地解释情况。我有一个复杂的数据结构,其中变量是通过引用其他变量来构建的,例如包含用户名的句子。我正在尝试避免必须对模板中的每个句子进行硬编码的情况,例如
<p>Hello, {{ user.first_name }}</p>并正在寻找一种解决方案来允许这样做:<p>{{ sentence }}</p>,其中句子 =Hello, {{ this.user.first_name }}。 -
酷,做这种事情的正确方法是使用computed properties
-
谢谢。这通常对我有用,但在我的特殊情况下,我需要先评估引用子变量的字符串,然后再计算父变量。我发布了一个适合我的解决方案。
-
“计算父变量之前的子变量” - 你能进一步解释一下吗?我无法理解这里的父母和孩子。
标签: variables vuejs2 eval bind string-interpolation