Ver Fonte

make v-model checkbox replace array instead of mutating it

Evan You há 9 anos atrás
pai
commit
9c4bf3590b
1 ficheiros alterados com 2 adições e 2 exclusões
  1. 2 2
      src/platforms/web/compiler/directives/model.js

+ 2 - 2
src/platforms/web/compiler/directives/model.js

@@ -52,8 +52,8 @@ function genCheckboxModel (el: ASTElement, value: ?string) {
     'if(Array.isArray($$a)){' +
     'if(Array.isArray($$a)){' +
       `var $$v=${valueBinding},` +
       `var $$v=${valueBinding},` +
           '$$i=$$a.indexOf($$v);' +
           '$$i=$$a.indexOf($$v);' +
-      'if($$c){$$i<0&&$$a.push($$v)}' +
-      'else{$$i>-1&&$$a.splice($$i,1)}' +
+      `if($$c){$$i<0&&(${value}=$$a.concat($$v))}` +
+      `else{$$i>-1&&(${value}=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}` +
     `}else{${value}=$$c}`
     `}else{${value}=$$c}`
   )
   )
 }
 }