javascript - 将数据从子组件传输到父组件
问题描述
我有一个表单(父)组件,其中包含两个输入文本字段和使用 vuejs-datepicker 组件的日期字段(子组件。见下文:
表单组件
<template>
<div>
<form>
Name<input type="text" v-model="name"/><br>
Age <input type="text" v-model="age"/><br>
<calendar2 @wybrano="zm($event)"></calendar2>
<button type="button" @click="sendfo()">Wyslij</button>
</form>
</div>
</template>
<script>
export default {
data() {
return {
name:"",
age:"",
da:""
}
},
created() {
},
methods: {
zm: function(ev) {
this.da=ev
},
sendfo: function() {
var t = this
axios({
method:"POST",
url: "sendfo",
data: {
name:"messi",
age:32,
data:t.da
},
}).then(function(response) {
console.log('done');
})
}
}
}
</script>
日历组件
<template>
<div>
<datepicker v-model="data" name="data" :format="ff" :monday-
first="mondayFirst" :clear-button="clearButton" :calendar-
button="calendarButton" @selected="sel"></datepicker>
</div>
</template>
<script>
import Datepicker from 'vuejs-datepicker';
export default {
components: {
Datepicker
},
created() {
},
data() {
return {
data: "",
mondayFirst: true,
clearButton: true,
calendarButton: true,
}
},
methods: {
sel: function() {
if(this.data){
this.data=this.data.toISOString().substr(0,10)
this.$emit('wybrano', this.data)
}
},
}
}
</script>
我的目的是使用表单组件来收集表单数据并通过 ajax 将它们发送到数据库。正如您在我$emit
用来将数据从日历组件传输到父组件的代码中看到的那样。一切正常,但是......日历组件中选择的(由用户)日期与传输到父组件的日期不同。我举几个例子;
date selected in calendar 07/08/2018 -> var data="07/08/2018" -> var da=""
date selected in calendar 09/12/2018 -> var data="09/12/2018" -> var da="07/08/2018"
date selected in calendar 01/01/2018 -> var data="01/01/2018" -> var da="09/12/2018"
我希望我的问题是可以理解的。每次da
父组件中的 var 从先前的选择中获取值。请帮我解决问题。
解决方案
您可以尝试v-model
在日历组件上使用。
使用这种方法,VueJS 可能会对日期的选择产生良好的反应。
/// 表单组件
...
<calendar2 v-model="da" />
...
/// 日历组件
... in the template
<datepicker v-model="value" input="$emit('input', $event.target.value.toISOString().substr(0,10))" ... />
...
... in the script
data() { /* datepicker configuration */ },
props: ['value'],
...
推荐阅读
- visual-studio - 打开 Visual Studio 2017 时出现未知错误
- javascript - Sequelize 模型关联更新未按预期反映
- firemonkey - Firemonkey、C++ Builder、Control-Model-Presentaion、TPresentationProxyFactory 注册错误
- python - 运行重采样图像时出现问题的代码
- python - 嵌套的 JSON 值导致“TypeError:'int64' 类型的对象不是 JSON 可序列化的”
- swift - Swift 4 中的 addTarget 有什么问题
- azure - 为什么 CNAME 记录在 Azure DNS 上返回 404 错误
- css - 在 CSS 中,显示内联块的作用类似于显示块
- python - 上课时如何带走健康点?
- python - 如何将脑电图触发器从一个 PsychoPy 脚本插入另一个?