Преглед изворни кода

set selected value on nextTick in IE/Edge (fix #3689 by @fergaldoyle)

Evan You пре 9 година
родитељ
комит
403f3ccb4c
1 измењених фајлова са 7 додато и 1 уклоњено
  1. 7 1
      src/platforms/web/runtime/directives/model.js

+ 7 - 1
src/platforms/web/runtime/directives/model.js

@@ -4,7 +4,7 @@
  */
 
 import { looseEqual, looseIndexOf } from 'shared/util'
-import { warn, isAndroid, isIE9 } from 'core/util/index'
+import { warn, nextTick, isAndroid, isIE9, isIE, isEdge } from 'core/util/index'
 
 const modelableTagRE = /^input|select|textarea|vue-component-[0-9]+(-[0-9a-zA-Z_\-]*)?$/
 
@@ -33,6 +33,12 @@ export default {
     }
     if (vnode.tag === 'select') {
       setSelected(el, binding, vnode.context)
+      /* istanbul ignore if */
+      if (isIE || isEdge) {
+        nextTick(() => {
+          setSelected(el, binding, vnode.context)
+        })
+      }
     } else if (vnode.tag === 'textarea' || el.type === 'text') {
       if (!isAndroid) {
         el.addEventListener('compositionstart', onCompositionStart)