javascript - Vue.js 2 v-for 循环没有获取数组元素
问题描述
我正在尝试检查元素是否为数组。如果为 true,则打印数组的元素,否则打印元素。
我的代码不打印元素,也不知道哪里有问题。
HTML:
<div>
<ul>
<li v-for="(value, i) in testData" :key="i">
<template v-if="Array.isArray(value)">
<div v-for="(element, ind) in value" :key="ind">{{ element }}</div>
</template>
<template v-else> {{ value }} </template>
</li>
</ul>
</div>
脚本:
export default {
data() {
return {
testData: {
id: 1,
name: "MyTest",
data: [1,0.5,5,8],
},}}
我的输出:
{{ value }}
{{ value }}
{{ element }}
{{ element }}
{{ element }}
{{ element }}
解决方案
您帖子中每个插值表达式的第一个花括号{{
都有一个额外的、不可见的 unicode 字符。我不确定您是如何创建它的,但它会导致问题。
将大括号复制粘贴{{
到此Unicode 文本分析器中时,它显示有 3 个字符:
{
=U+007B
LEFT CURLY BRACKET
U+200C
ZERO WIDTH NON-JOINER
❌ 不应该在这里{
=U+007B
LEFT CURLY BRACKET
使用正确的大括号,您的代码确实可以工作:
new Vue({
el: "#app",
data() {
return {
testData: {
id: 1,
name: "MyTest",
data: [1,0.5,5,8]
}
}
}
});
<div id="app">
<ul>
<li v-for="(value, i) in testData" :key="i">
<template v-if="Array.isArray(value)">
<div v-for="(element, ind) in value" :key="ind">{{ element }}</div>
</template>
<template v-else>{{ value }}</template>
</li>
</ul>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
推荐阅读
- javascript - select2 选择后改变焦点
- maven - 使用 Maven 的 MuleSoft Anypoint RuntimeFabric 部署
- excel - 从另一张纸上提取行数
- azure - AZ-900,应用程序应该连接什么来检索安全令牌?
- python - 进程以退出代码 138 结束(被信号 10:SIGBUS 中断)
- python - 如何将值从列表的第一个元素连接到下一个位置?- Python
- git - 永久禁用 npm 版本的 git tag 版本
- c++ - 如何使用 WebView2 运行时的替代版本?
- jenkins - 如何重播使用通用 webhook HTTP POST 内容的 Jenkins 管道作业?
- apache - 使用 htaccess 将首字母从小写转换为大写 URL