mirror of https://github.com/vuejs/core.git
feat(runtime-vapor): implement vModelRadio
Fully supported v-model for native elements.
This commit is contained in:
parent
f7080efa5d
commit
184d72e747
|
@ -42,8 +42,7 @@ PR are welcome!
|
|||
- [x] modifiers
|
||||
- [x] runtime directives
|
||||
- [ ] `v-memo` [on hold]
|
||||
- [ ] `v-model`
|
||||
- [x] text field
|
||||
- [x] `v-model`
|
||||
- [x] `v-if` / `v-else` / `v-else-if`
|
||||
- [ ] `v-for`
|
||||
- [x] basic
|
||||
|
|
|
@ -115,8 +115,21 @@ export const vModelText: ObjectDirective<
|
|||
},
|
||||
}
|
||||
|
||||
// TODO
|
||||
export const vModelRadio = {}
|
||||
export const vModelRadio: ObjectDirective<HTMLInputElement> = {
|
||||
beforeMount(el, { value, instance }) {
|
||||
el.checked = looseEqual(value, getValue(el, instance))
|
||||
assignFnMap.set(el, getModelAssigner(el, instance))
|
||||
addEventListener(el, 'change', () => {
|
||||
assignFnMap.get(el)!(getValue(el, instance))
|
||||
})
|
||||
},
|
||||
beforeUpdate(el, { value, oldValue, instance }) {
|
||||
assignFnMap.set(el, getModelAssigner(el, instance))
|
||||
if (value !== oldValue) {
|
||||
el.checked = looseEqual(value, getValue(el, instance))
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
export const vModelSelect: ObjectDirective<HTMLSelectElement, any, 'number'> = {
|
||||
// <select multiple> value need to be deep traversed
|
||||
|
|
Loading…
Reference in New Issue