【发布时间】:2020-05-16 20:16:01
【问题描述】:
我有以下问题,由于某种原因,v-for 根本不会渲染。请在这里找到小提琴https://jsfiddle.net/tadeyemi/k6s4gv85/ 我完全不知道为什么它不起作用。有人愿意解释一下吗?
<div id="app">
<h1>Finds</h1>
<div>
<input ref="option">
</div>
<button v-if @click="addFind">
New Find
</button>
<p v-for="(option,idx) in options.slice(1)">
<span @click="removeOption(idx+1)">Option{{idx+1}}: {{option}}</span>
</p>
</div>
和JavaScript如下:
new Vue({
el: '#app',
data: {
options: [],
count:0
},
methods: {
addFind: function () {
var msg = this.$refs.option.value;
console.log(this.options);
if( msg.trim() != "" ){
this.count++;
var i = this.count;
this.options[i]= this.$refs.option.value.trim();
}
},
removeOption:function(index){
this.options.splice(index,1);
this.count--;
}
}
});
【问题讨论】:
-
渲染组件时
options中存储了什么值? -
我用 JSFiddle 运行它,它向我展示了选项列表,你正在实现什么行为?
-
@BernardoDuarte 在小提琴上,如果你注释掉底部的
标签,它就会停止工作,这就是我不明白的一点。我正在记录数组,我可以看到数组已填充。
-
@Bassie 开始时选项为空
-
@oluwatyson 如果 options 为空,那么 v-for 它不会渲染任何东西...
标签: javascript vue.js