Vue: A caixa de seleção mostra marcada quando o v-model é falso

Criado em 8 abr. 2016  ·  3Comentários  ·  Fonte: vuejs/vue

Comecei por esse caminho porque @click acionado antes que o v-model seja atualizado (exemplo aqui: http://jsfiddle.net/5sH6A/308/ )
então eu não sabia qual era o valor. Eu pensei em tentar minha lógica em uma função watch: mas encontrei o problema abaixo.

Versão Vue.js

1.0.16

Link de reprodução

http://jsfiddle.net/5sH6A/303/

Passos para reproduzir

Clique na caixa de seleção e escolha cancelar

O que é esperado?

A caixa de seleção deve estar vazia

O que está realmente acontecendo?

A caixa de seleção mostra marcada enquanto os dados vinculados são falsos

Comentários muito úteis

Muito tarde para esta festa - mas ainda é um problema vivo para mim depois de todos esses anos. Minha solução:
Ao usar uma entrada de caixa de seleção com v-model, use o manipulador onchange @change . Funcionará tanto para o IE quanto para navegadores razoáveis.

Estranhamente, se você usar uma caixa de seleção v-model e @click , o valor do seu atributo v-model (por exemplo, "flgChecked") será revertido no manipulador de cliques do Chrome/Firefox. Ou seja, será falso quando você acabou de clicar na caixa de seleção para a posição ligada, verdadeira quando você clicou na posição desligada. Então - invertido. Mas o IE realmente relata "corretamente". Assim . . . use @alterar.

Ou talvez eu esteja apenas perdendo alguma coisa.

Todos 3 comentários

Isso parece ser sobre compatibilidade.
Funciona muito bem com Edge 12 e IE11 no Windows 10, mas quebra com o chrome 49.0.2623.110
Ele também quebra com o firefox 41 no salto de suse aberto

Definir o mesmo valor dentro de um watcher é sempre uma má ideia...

Eu diria que a maneira mais fácil de lidar com isso é simplesmente não usar v-model . Você está tentando controlar o valor de qualquer maneira: http://jsfiddle.net/yyx990803/5sH6A/310/

Muito tarde para esta festa - mas ainda é um problema vivo para mim depois de todos esses anos. Minha solução:
Ao usar uma entrada de caixa de seleção com v-model, use o manipulador onchange @change . Funcionará tanto para o IE quanto para navegadores razoáveis.

Estranhamente, se você usar uma caixa de seleção v-model e @click , o valor do seu atributo v-model (por exemplo, "flgChecked") será revertido no manipulador de cliques do Chrome/Firefox. Ou seja, será falso quando você acabou de clicar na caixa de seleção para a posição ligada, verdadeira quando você clicou na posição desligada. Então - invertido. Mas o IE realmente relata "corretamente". Assim . . . use @alterar.

Ou talvez eu esteja apenas perdendo alguma coisa.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

fergaldoyle picture fergaldoyle  ·  3Comentários

julianxhokaxhiu picture julianxhokaxhiu  ·  3Comentários

6pm picture 6pm  ·  3Comentários

WolfgangFellger picture WolfgangFellger  ·  3Comentários

franciscolourenco picture franciscolourenco  ·  3Comentários