我正在尝试使用 --- 触发 @click
foo()
函数,但如您所见,需要按两次单选按钮才能正确触发事件。仅在您第二次按下时捕获该值…
我想在没有 @click
的情况下触发事件,仅在 v-model
(srStatus) 更改时触发事件。
这是我的小提琴:
http://fiddle.jshell.net/wanxe/vsa46bw8/
原文由 jnieto 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试使用 --- 触发 @click
foo()
函数,但如您所见,需要按两次单选按钮才能正确触发事件。仅在您第二次按下时捕获该值…
我想在没有 @click
的情况下触发事件,仅在 v-model
(srStatus) 更改时触发事件。
这是我的小提琴:
http://fiddle.jshell.net/wanxe/vsa46bw8/
原文由 jnieto 发布,翻译遵循 CC BY-SA 4.0 许可协议
您实际上可以通过删除 v-on
指令来简化此操作:
<input type="radio" name="optionsRadios" id="optionsRadios1" value="1" v-model="srStatus">
并使用 watch
方法来监听变化:
new Vue ({
el: "#app",
data: {
cases: [
{ name: 'case A', status: '1' },
{ name: 'case B', status: '0' },
{ name: 'case C', status: '1' }
],
activeCases: [],
srStatus: ''
},
watch: {
srStatus: function(val, oldVal) {
for (var i = 0; i < this.cases.length; i++) {
if (this.cases[i].status == val) {
this.activeCases.push(this.cases[i]);
alert("Fired! " + val);
}
}
}
}
});
原文由 Stephen Hallgren 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
发生这种情况是因为您的
click
处理程序在单选按钮的值更改之前触发。您需要改为听change
事件:另外,请确保您真的想调用
foo()
准备就绪…似乎您实际上并不想这样做。