let h = this.$createElement;
window.vm = this
this.$msgbox({
message: h('el-date-picker', {
domProps: {
value: this.batch_change_time
},
on: {
change: (e) => {
this.batch_change_time = e
}
}
})
})
需求是弹一个msgbox出来选择时间。
现在问题有两个:
- change不会触发(input可以)
- value好像没绑定到组件,选择了日期之后日期选择器内容还是空的
是我写法错了么?
picker.vue
的源码.$msgbox
的message
选项挂载的vnode, 无法绑定props中的属性, 也就是说只能实现从弹窗vnode到父组件的单向绑定(通过oninput
事件, 但是在input
事件响应日期改动后, 这个改动却无法再让弹窗vnode响应, 具体表现就是点了其它日期没有反应). 这个也与el-date-picker
的实现有关系, 如果它能接收一个null
的v-model
值, 并且内部不要直接依赖于v-model
, 也是就value
属性, 那么还是可以抢救一下. 解决这个问题的思路, 就是自己给el-date-picker
套一层, 用外层的data帮el-data-picker
管理value
. 但这个解决办法的的成本已经远远高于使用$msgbox
带来的好处, 所以最后我的建议就是...放弃