【发布时间】:2018-07-05 11:12:11
【问题描述】:
我是 VueJS 的新手,并尝试在组件上遵循 v-model 实现 example here
<template>
<div class="date-picker">
Month: <input type="number" ref="monthPicker" :value="value.month" @input="updateDate()" />
Year: <input type="number" ref="yearPicker" :value="value.year" @input="updateDate()" />
</div>
</template>
<script>
export default {
props: ['value'],
methods: {
updateDate() {
this.$emit('input', {
month: +this.$refs.monthPicker.value,
year: +this.$refs.yearPicker.value
})
}
}
};
</script>
在父级上:
<template>
<div class="wrapper">
<date-picker v-model="date"></date-picker>
<p>
Month: {{date.month}}
Year: {{date.year}}
</p>
</div>
</template>
<script>
import DatePicker from './DatePicker.vue';
export default {
components: {
DatePicker
},
data() {
return {
date: {
month: 1,
year: 2017
}
}
}
})
</script>
不知道为什么不能把 props: ['value'] 的名字改成 props: ['abc'] 并改变
Month: <input type="number" ref="monthPicker" :value="abc.month" @input="updateDate()" />
我收到一个错误:TypeError: Cannot read property 'month' of undefined
【问题讨论】:
标签: javascript vue.js vuejs2