【发布时间】:2020-08-14 09:02:23
【问题描述】:
当用户选中其中一个复选框时,我还要做的是检查default 选项。
我已经创建了我遇到的错误的 sn-p, 通常我认为这是因为我的嵌套组件。
但我遇到了错误 您可能在 watcher 中有一个无限更新循环,表达式为“localChecked”
即使在这个简单的代码 sn-p 上。
vue js 脚本
new Vue({
el: "#app",
data: {
application: [
{
app_name : 'Netflix',
app_default : 'videoshare_default',
options : [
{ text : 'Video Stream', value : 'video_streaming'},
{ text : 'Download Video' , value : 'video_download'},
{ text : 'Share Video' , value : 'videoshare_default'}
]
},
{
app_name : 'Messenger',
app_default : 'message',
options : [
{ text : 'Messaging', value : 'message'},
{ text : 'Voice Calls' , value : 'voice_calls'},
{ text : 'Video Calls' , value : 'video_calls'},
{ text : 'Media Sharing' , value : 'file_transfer'}
]
}
],
selected : []
},
methods: {
selectDefault: function(data,$event){
this.selected[data.app_name].push(data.videoshare_default)
}
}
})
HTML
<div id="app">
<b-col v-for="(data , index) in application" v-bind:key="index" class="p-2" cols="5">
<b-form-group :label="data.app_name" label-class="font-weight-bold">
<b-form-checkbox-group
@input="selectDefault(data,$event)"
v-model="selected[data.app_name]"
:options="data.options"
name="application[]"
stacked
></b-form-checkbox-group>
</b-form-group>
</b-col>
</div>
小提琴:
https://jsfiddle.net/tomexsans/194m0jdq/1/
或者除了我正在做的事情之外,还有其他方法可以做到这一点。
【问题讨论】:
-
你想要的是这样的 (jsfiddle.net/6kvew3zf/1) 吗?
-
@Hiws 这就是我想要的。是的,您应该将此添加为答案,以便我接受。感谢您在代码中添加 cmets。
标签: vue.js vue-component bootstrap-vue