我正在努力实现以下目标,但遇到了障碍。
我的格式如下:
当我点击“新交易部分”按钮时,我将创建一个新的部分,如下所示:
但是,我想做的是能够在按下“新建项目”按钮时在每个部分中添加多个文本框。我尝试在第二个v-for循环中嵌套一个容器,该循环是在按下“新交易按钮”时创建的,但未能成功进行。
我对使用任何类型的JS都是新手,更不用说VueJS框架了,因此任何帮助将不胜感激。到目前为止,这是我的代码:
<!--Start of content-->
<div class="container">
<button class="btn btn-success mt-5 mb-5" @click="addNewSection">
New Deal Section
</button>
<div class="card mb-3" v-for="(section, index) in sections">
<div class="card-body">
<button class="btn btn-success mt-5 mb-5" @click="addNewItem">
New Item
</button>
<span class="float-right" style="cursor:pointer">
X
</span>
<h4 class="card-title">Deal section {{ index + 1}}</h4>
<div class="employee-form" v-for="(addition, index) in additionals">
<input type="text" class="form-control mb-2" placeholder="Item" v-model="addition.item">
</div>
<div class="employee-form">
<input type="text" class="form-control mb-2" placeholder="Item" v-model="section.item">
</div>
</div>
</div>
</div>
<script>
var app = new Vue({
el: '.container',
data: {
sections: [
{
item: '',
}
]
},
methods: {
addNewSection () {
this.sections.push({
item: ''
})
},
addNewItem () {
this.additionals.push({
item: ''
})
}
}
})
</script>
答案 0 :(得分:2)
您应在additionals
数组内添加sections
数组,如下所示:
<div id="app">
<div class="container">
<button class="btn btn-success mt-5 mb-5" @click="addNewSection">
New Deal Section
</button>
<div class="card mb-3" v-for="(section, index) in sections">
<hr>
<div class="card-body">
<button class="btn btn-success mt-5 mb-5" @click="addNewItem(index)"> <!-- passing the index -->
New Item
</button>
<span class="float-right" style="cursor:pointer">
X
</span>
<h4 class="card-title">Deal section {{ index + 1}}</h4>
<div class="employee-form" v-for="(addition, index) in section.additionals"> <!-- additionals of the section -->
<input type="text" class="form-control mb-2" placeholder="Item" v-model="addition.item">
</div>
<div class="employee-form">
<input type="text" class="form-control mb-2" placeholder="Item" v-model="section.item">
</div>
</div>
</div>
</div>
</div>
<script>
var app = new Vue({
el: '.container',
data: {
sections: [
{
item: '',
additionals: [] // <-
}
]
},
methods: {
addNewSection() {
this.sections.push({
item: '',
additionals: [] // <-
})
},
addNewItem(id) {
// passing the id of the section
this.sections[id].additionals.push({
item: ''
})
}
}
})
</script>
JSFiddle:https://jsfiddle.net/Wuzix/qs6t9L7x/