From: Evan You Date: Tue, 28 Jul 2020 15:44:27 +0000 (-0400) Subject: fix(v-model): enable v-model type detection on custom elements X-Git-Tag: v3.0.0-rc.5~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b3b1cfa487a359c8762794cfd74726d55b9ef8f;p=thirdparty%2Fvuejs%2Fcore.git fix(v-model): enable v-model type detection on custom elements --- diff --git a/packages/compiler-dom/src/transforms/vModel.ts b/packages/compiler-dom/src/transforms/vModel.ts index 83984d23e7..0aa9dca1eb 100644 --- a/packages/compiler-dom/src/transforms/vModel.ts +++ b/packages/compiler-dom/src/transforms/vModel.ts @@ -44,15 +44,16 @@ export const transformModel: DirectiveTransform = (dir, node, context) => { } const { tag } = node + const isCustomElement = context.isCustomElement(tag) if ( tag === 'input' || tag === 'textarea' || tag === 'select' || - context.isCustomElement(tag) + isCustomElement ) { let directiveToUse = V_MODEL_TEXT let isInvalidType = false - if (tag === 'input') { + if (tag === 'input' || isCustomElement) { const type = findProp(node, `type`) if (type) { if (type.type === NodeTypes.DIRECTIVE) { @@ -91,9 +92,8 @@ export const transformModel: DirectiveTransform = (dir, node, context) => { } } else if (tag === 'select') { directiveToUse = V_MODEL_SELECT - } - { - // textarea or custom elements + } else { + // textarea __DEV__ && checkDuplicatedValue() } // inject runtime directive