test(vapor): v-model runtime tests
This commit is contained in:
parent
0392eb41e0
commit
1f25e0d863
|
@ -90,7 +90,7 @@ export const vModelTextInit = (
|
|||
if (trim) {
|
||||
domValue = domValue.trim()
|
||||
}
|
||||
if (number) {
|
||||
if (number || el.type === 'number') {
|
||||
domValue = looseToNumber(domValue)
|
||||
}
|
||||
;(set || (el as any)[assignKey])(domValue)
|
||||
|
@ -359,7 +359,14 @@ function getCheckboxValue(
|
|||
checked: boolean,
|
||||
) {
|
||||
const key = checked ? '_trueValue' : '_falseValue'
|
||||
return key in el ? el[key] : checked
|
||||
if (key in el) {
|
||||
return el[key]
|
||||
}
|
||||
const attr = checked ? 'true-value' : 'false-value'
|
||||
if (el.hasAttribute(attr)) {
|
||||
return el.getAttribute(attr)
|
||||
}
|
||||
return checked
|
||||
}
|
||||
|
||||
export const vModelDynamic: ObjectDirective<
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -47,6 +47,16 @@ export function setAttr(el: any, key: string, value: any): void {
|
|||
return
|
||||
}
|
||||
|
||||
// special case for <input v-model type="checkbox"> with
|
||||
// :true-value & :false-value
|
||||
// store value as dom properties since non-string values will be
|
||||
// stringified.
|
||||
if (key === 'true-value') {
|
||||
;(el as any)._trueValue = value
|
||||
} else if (key === 'false-value') {
|
||||
;(el as any)._falseValue = value
|
||||
}
|
||||
|
||||
if (value !== el[`$${key}`]) {
|
||||
el[`$${key}`] = value
|
||||
if (value != null) {
|
||||
|
|
Loading…
Reference in New Issue