我for ... in
在vue js中有一个嵌套循环。我要尝试的是如果元素的值为则跳过元素null
。这是html代码:
<ul>
<li v-for="item in items" track-by="id">
<ol>
<li v-for="child in item.children" track-by="id"></li>
</ol>
</li>
</ul>
null
元素可能同时存在于item
和item.children
对象中。
例如:
var data = {
1: {
id: 1,
title: "This should be rendered",
children: {
100: {
id: 100,
subtitle: "I am a child"
},
101: null
}
},
2: null,
3: {
id: 3,
title: "Should should be rendered as well",
children: {}
}
};
使用此数据时,data[1].children[101]
不应渲染,如果data[1].children[100]
以后变为null,则应从列表中将其省略。
附言:我知道这可能不是代表数据的最佳方式,但我对此不负责:)
我建议您不要在同一元素中使用v-if和v-for。我发现有效但不影响性能的是:
您只需要在要处理的阵列上运行过滤器功能。这是c#中的常见用法,发现在JavaScript中没有什么不同。基本上在迭代时将跳过null。
希望这会有所帮助(3年后)。