},
// set value in mounted & updated because <select> relies on its children
// <option>s.
- mounted(el, { value, oldValue, modifiers: { number } }) {
- setSelected(el, value, oldValue, number)
+ mounted(el, { value, modifiers: { number } }) {
+ setSelected(el, value, number)
},
beforeUpdate(el, _binding, vnode) {
el[assignKey] = getModelAssigner(vnode)
},
- updated(el, { value, oldValue, modifiers: { number } }) {
+ updated(el, { value, modifiers: { number } }) {
if (!el._assigning) {
- setSelected(el, value, oldValue, number)
+ setSelected(el, value, number)
}
},
}
-function setSelected(
- el: HTMLSelectElement,
- value: any,
- oldValue: any,
- number: boolean,
-) {
+function setSelected(el: HTMLSelectElement, value: any, number: boolean) {
const isMultiple = el.multiple
const isArrayValue = isArray(value)
if (isMultiple && !isArrayValue && !isSet(value)) {
} else {
option.selected = value.has(optionValue)
}
- } else {
- if (looseEqual(getValue(option), value)) {
- if (el.selectedIndex !== i) el.selectedIndex = i
- return
- }
+ } else if (looseEqual(getValue(option), value)) {
+ if (el.selectedIndex !== i) el.selectedIndex = i
+ return
}
}
if (!isMultiple && el.selectedIndex !== -1) {