Skip to content

Commit 54ed759

Browse files
committed
fix(v-model): ensure initial value is set after other attributes
fix #2325
1 parent d1a6ce6 commit 54ed759

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

packages/runtime-dom/src/directives/vModel.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ type ModelDirective<T> = ObjectDirective<T & { _assign: AssignerFn }>
4848
export const vModelText: ModelDirective<
4949
HTMLInputElement | HTMLTextAreaElement
5050
> = {
51-
created(el, { value, modifiers: { lazy, trim, number } }, vnode) {
52-
el.value = value == null ? '' : value
51+
created(el, { modifiers: { lazy, trim, number } }, vnode) {
5352
el._assign = getModelAssigner(vnode)
5453
const castToNumber = number || el.type === 'number'
5554
addEventListener(el, lazy ? 'change' : 'input', e => {
@@ -77,6 +76,10 @@ export const vModelText: ModelDirective<
7776
addEventListener(el, 'change', onCompositionEnd)
7877
}
7978
},
79+
// set value on mounted so it's after min/max for type="range"
80+
mounted(el, { value }) {
81+
el.value = value == null ? '' : value
82+
},
8083
beforeUpdate(el, { value, modifiers: { trim, number } }, vnode) {
8184
el._assign = getModelAssigner(vnode)
8285
// avoid clearing unresolved text. #2302

0 commit comments

Comments
 (0)