vue.js - Vue.js:v-for 的替代索引
问题描述
https://jsfiddle.net/4faecf49a1e9/Lmbkdpc2/
<div id="nest">
<h2>Fill input for blocks appearance or disappearance</h2>
<div id="element_inputs">
<input v-for="net, index in elements" v-model="elements[index].value" />
</div>
<div id="elements_render">
<div v-for="bl, index in elements_list" v-if="elements[bl].value !== ''" :style="{ 'backgroundColor': colors_list[index] }" class="block">{{index}}</div>
</div>
<h2>Write colors here (example: yellow, pink, orange)</h2>
<input id="colors" type="" name="" v-model="recoloring" />
</div>
var lay = new Vue({
el: '#nest',
props: ["recoloring"],
data: {
elements: {
'box1': { value: 'first' },
'box2': { value: '' },
'box3': { value: '' },
'box4': { value: '' }
},
elements_list: ['box1', 'box2', 'box3', 'box4'],
colors_list: []
},
watch: {
recoloring: function (arg) {
this.colors_list = arg.split(',')
}
}
});
如果它们的链接输入已填充,我正在尝试创建块的外观(如果它们的输入为空,我们不会渲染块)。这项工作已经完成,但很长时间以来,当人们可以在特殊输入中创建自己的颜色列表时,我一直遇到块“正确”着色的问题。例如,您在此输入中写入“黄色、粉红色、橙色”并为这些块外观填充 1,2 和 4 个输入 (v-if)。3 输入为空,因此无法显示。问题是我将 1 和 2 重新着色,但 4 具有默认颜色,因为重新着色会影响隐藏的 3 块,而我需要按顺序排列前 3 个块(无论 3 个是否存在)。我不能按照默认索引从事这项工作。在这种情况下,如果我在 4 之后填充 3 输入,则必须失去颜色并在 (3) 之前“给”它阻塞,而我不会在橙色之后写新颜色,例如“黄色、粉红色、橙色、蓝色”
我怎么能这样做?我可以用索引做什么?
谢谢!
解决方案
推荐阅读
- python - Librosa 中音频文件每秒的平均幅度(以 dB 为单位)
- jenkins - 禁止来自 Jenkins 日志的敏感信息
- http - HTTP 404 与 596
- laravel - Laravel 控制器中的 where 子句
- node.js - Strapi 在 find() 中使用条件 _in
- javascript - 编辑时如何显示日期值?
- mysql - 表连接后按另一列分组
- vue.js - 如何在 Vue CDN 中使用 axios 模块化 API
- asp.net - IIS Web URL 通过 http 重定向到子文件夹到 https 不同的端口
- php - 用户退出我的自定义编程 PHP 网站