Estoy tratando de activar la foo()función con el @clickpero, como puede ver, necesito presionar el botón de radio dos veces para activar el evento correctamente. Solo capture el valor la segunda vez que presione ...
Quiero disparar el evento sin @clicksolo disparar el evento cuando v-model(srStatus) cambia.
aquí está mi violín:
javascript
events
vue.js
jnieto
fuente
fuente

foo()es realizar cambios que no sean de plantilla, use awatcherRespuestas:
Esto sucede porque su
clickcontrolador dispara antes de que cambie el valor del botón de opción. En su lugar, debes escuchar elchangeevento:Además, asegúrese de que realmente quiere llamar
foo()listo ... parece que tal vez no quiera hacer eso.fuente
En realidad, puede simplificar esto eliminando las
v-ondirectivas:Y usa el
watchmétodo para escuchar el cambio:fuente
Vue2: si solo desea detectar cambios en el desenfoque de entrada (por ejemplo, después de presionar enter o hacer clic en otro lugar), hágalo (más información aquí )
Si desea detectar cambios de un solo carácter (durante la escritura del usuario) utilice
También puede utilizar
@keyupy@inputeventos. Si desea pasar parámetros adicionales, utilice en la plantilla, por ejemplo@keyDown="foo($event, param1, param2)". Comparación a continuación (versión editable aquí )Mostrar fragmento de código
fuente
@keyDownjsfiddle.net/rLzm0f1q (sin embargo, no digo que@inputsea bueno o malo)Deberías usar
@input:@inputse dispara cuando el usuario cambia el valor de entrada.@changese dispara cuando el usuario cambia el valor y desenfoca la entrada (por ejemplo, hace clic en algún lugar fuera)Puede ver la diferencia aquí: https://jsfiddle.net/posva/oqe9e8pb/
fuente
Solo para agregar a la respuesta correcta anterior, en Vue.JS v1.0 puede escribir
Entonces, en este ejemplo sería
Ver: http://v1.vuejs.org/guide/syntax.html#Arguments
fuente