vue.js - Vue 附加元素有一些问题
问题描述
这是我的代码,我尝试获取fruit1和fruit2输入,但是得到[object Object]或未定义的alert(this.inputs.id)或alert(this.inputs)。
<div id="item">
<div v-for="input in inputs" :key="input.id">
<label :for="input.id">{{input.label}}</label>
<input :id="input.id" v-model="input.value"></input>
</div>
<button @click="addInput">Add input</button>
</div>
data() {
return {
counter: 1,
inputs: [{
id: 'fruit1',
label: 'Enter Fruit Name',
value: '123',
}],
}
}
addInput() {
this.inputs.push({
id: `fruit${++this.counter}`,
label: 'Enter Fruit Name',
value: '',
});
}
解决方案
addInput
应该戴上methods
this.inputs
是一个数组而不是对象,你不能调用this.inputs.id
,你应该这样this.inputs[0].id
做
如果你想通过提供 id 来获得某些输入,你可以这样做
methods: {
addInput() {
this.inputs.push({
id: `fruit${++this.counter}`,
label: 'Enter Fruit Name',
value: '',
});
},
getInput(id) {
return this.inputs.find(input => {
return input.id === id
}
}
}
推荐阅读
- android - 如何从外部库中排除 java 文件?
- java - 如何使用 adb 端口转发?
- javascript - 如何从 Object Jasvscript 中删除属性?
- javascript - 如何按键合并对象数组?
- react-native - 使用 react-native-facebook-account-kit 获取手机号码
- javascript - 打字机动画谁选择和删除
- elasticsearch - ES 不会在 Win x64 Java SE 8 u 171/2 上启动
- javascript - 如何用 jQuery 做 Framework7 路由?
- linux - 查找正则表达式匹配条件
- nsis - 计数 NSIS 中的文件