javascript - 使用 vuejs 从输入中动态添加项目
问题描述
在我的 vuejs 项目中,我有一个表单部分来为房子添加设施和电器。有一个输入字段来输入设施和按钮以将其添加到列表中,但我有点不确定如何执行此操作。
我的 HTML:
<div class="input-wrapper flex align-end">
<div class="input-wrap">
<label for="facility">Add facility like pooltable or swimmingpool</label>
<input type="text" v-model="facility" id="facility" class="bordered border-green" />
</div>
<div class="input-wrap">
<button class="button button-main button-green-light add-button" data-button-type="add" @click.prevent="addFacilities">Add</button>
</div>
</div>
目标是让它在单击“添加”时将项目添加到列表中,然后清空输入字段,所以我最终得到这样的结果
<ul>
<li>Pool table<li>
<li>Swimming Pool<li>
<li>Fussball table</li>
</ul>
<input type="hidden" name="facilities" value="pool table, swimmingpool, fussball table" />
解决方案
您需要v-for
用于这种情况。
在列表模板部分
<ul>
<li v-for="item in items" :key="item">{{item}}</li>
</ul>
在表单模板部分
// .. form items
<input type="text" v-model="input">
<button type="button" @click="addToItems">Add</button>
在 vue 组件 js 部分
data: {
input: '',
items: [],
},
methods: {
addToItems() {
if (!this.input) {
// input value is empty
return;
}
// add item to reactive array items
this.items.push(this.input);
// clear the input
this.input = '';
}
}
推荐阅读
- ios - 有没有办法查看每次调用 NSLog 以及 NSLog 的内容?
- ros - 启动节点(如果尚未运行)
- html - 如何将页眉与页面顶部对齐?
- python - Bokeh VBar 图表数据未填充
- c++ - co_await 运算符实际上是做什么的?
- java - 我正在尝试向一个类中的 int 添加一个值,然后在另一个类中使用它,Java
- ios - iOS 12 - “应用程序的 Info.plist 必须包含 NSMicrophoneUsageDescription 键”
- javascript - CanvasRenderingContext2D drawImage() 在 Chrome 中无法正常工作
- c# - .net core 2.0 与 dbcontext 的范围问题
- java - 确保文本文件包含在 JAR 中