8000 ensure v-model runtime metadata for all types · vuejs/vue@5d0999a · GitHub
[go: up one dir, main page]

Skip to content

Commit 5d0999a

Browse files
committed
ensure v-model runtime metadata for all types
1 parent e774ce2 commit 5d0999a

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

src/platforms/web/compiler/directives/model.js

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,16 @@ export default function model (
2525
}
2626
}
2727
if (tag === 'select') {
28-
return genSelect(el, value)
28+
genSelect(el, value)
2929
} else if (tag === 'input' && type === 'checkbox') {
3030
genCheckboxModel(el, value)
3131
} else if (tag === 'input' && type === 'radio') {
3232
genRadioModel(el, value)
3333
} else {
34-
return genDefaultModel(el, value, modifiers)
34+
genDefaultModel(el, value, modifiers)
3535
}
36+
// ensure runtime directive metadata
37+
return true
3638
}
3739

3840
function genCheckboxModel (el: ASTElement, value: string) {
@@ -128,10 +130,6 @@ function genDefaultModel (
128130
}
129131
addProp(el, 'value', isNative ? `_s(${value})` : `(${value})`)
130132
addHandler(el, event, code, null, true)
131-
if (needCompositionGuard) {
132-
// need runtime directive code to help with composition events
133-
return true
134-
}
135133
}
136134

137135
function genSelect (el: ASTElement, value: string) {
@@ -143,8 +141,6 @@ function genSelect (el: ASTElement, value: string) {
143141
`.map(function(o){return "_value" in o ? o._value : o.value})` +
144142
(el.attrsMap.multiple == null ? '[0]' : '')
145143
addHandler(el, 'change', code, null, true)
146-
// need runtime to help with possible dynamically generated options
147-
return true
148144
}
149145

150146
function checkOptionWarning (option: any): boolean {

src/platforms/web/runtime/directives/model.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ export default {
4040
if (isIE || isEdge) {
4141
setTimeout(cb, 0)
4242
}
43-
} else if (vnode.tag === 'textarea' || el.type === 'text') {
43+
} else if (
44+
(vnode.tag === 'textarea' || el.type === 'text') &&
45+
!binding.modifiers.lazy
46+
) {
4447
if (!isAndroid) {
4548
el.addEventListener('compositionstart', onCompositionStart)
4649
el.addEventListener('compositionend', onCompositionEnd)

0 commit comments

Comments
 (0)
0