javascript - Vue:组件中的输入表单不返回值
问题描述
我在带有输入字段的“ecedata”组件中有此代码:
<template>
<div class="col-l-4">
<p style="text-align: center">Data/day (GB)</p>
<div class="form-input-set" style="background: white">
<input v-bind:value="dataday" v-on:change="$emit('changedataday', $event.target.value)" type="number" class="form-input">
</div>
</div>
</template>
<script>
export default {
name:"ecedata" ,
props: {
dataday:Number,
},
data () {
return {
}
},
}
</script>
我正在调用主 app.vue 中的组件:
<template>
<ecedata v-bind:dataday="dataday" v-on:changedataday="vuedataday" ></ecedata>
</template>
<script>
import ecedata from '@/components/ece/data/ecedata.vue'
export default {
name: 'app',
components: {
ecedata,
},
data () {
return {
dataday:0,
}
},
methods: {
vuedataday() {
alert(this.dataday)
}
},
};
</script>
但它不会以 0 以外的形式返回输入值。错误在哪里?
解决方案
您刚刚将值从父组件绑定到子组件。
vuedataday
当您将方法绑定为事件的回调时,您几乎在那里,changedataday
该函数正在接收事件传递的值。
vuedataday(newDataday) {
this.dataday = newDataday;
}
另一种进行双向绑定的方法是使用v-model
.
<ecedata v-model="dataday"></ecedata>
而在孩子
<input v-bind:value="dataday" v-on:change="$emit('input', $event.target.value)" type="number" class="form-input">
https://vuejs.org/v2/guide/components.html#Using-v-model-on-Components
推荐阅读
- kotlin - 创建 kotlin 中缀表示法以将函数嵌套到另一个时类型不匹配
- mysql - Sql查询按父ID选择
- mariadb - 无法在 manjaro 上启动 mariaDB
- sql - 如何从“select *”输出中查看 TDengine 数据库中的最新行?
- javascript - 如何在 Angular 中使用 2 种方式的数据绑定?
- java - 在方法中实现带有附加参数的接口
- internet-explorer - 当用作 ActiveX 控件时,有没有办法调试 shdocvw.dll?
- c# - 如何在 c# 中覆盖 System.Convert.Tostring 方法
- reactjs - 将表单数据发送到后端
- visual-studio-code - 如何取回 VS Code 中 jupyter NB 中的“在下方插入单元格”按钮?