如何在 Vuejs 中一次将多个数据项更改为 true
How to change several data items to true one at a time in Vuejs
我是 Vuejs 的新手,我想知道如何在 Vuejs 中完成这项工作
我有一组不同的数据:
data() {
return {
recents: false,
frontend: false,
backend: false,
devops: false,
tutoriais: false,
};
},
当我点击一个按钮时,它会调用 openOptions()
并将特定的 属性 更改为 true 或 false。
openOptions(e) {
const optionClicked = e.target.text.toLowerCase();
this[optionClicked] = !this[optionClicked];
},
但是,我不能有 2 个属性为真。我需要将其他所有内容设置为 false
,但我很难理解如何完成这项工作。所以基本上我需要的是
set the one I clicked to true
and the rest to false
有人可以帮我吗?
您可以先创建一个对象作为单个实体,我使用了一个名称为 collection
的对象
现场演示
data() {
return {
collection: {
recents: false,
frontend: false,
backend: false,
devops: false,
tutoriais: false,
},
};
},
然后,您可以在每个元素上附加点击监听器(如果需要,您也可以在其父元素上附加一个单击监听器)
<button
v-for="[key, value] in Object.entries(this.collection)"
:key="key"
v-on:click="() => openOptions(key)"
>
{{ key }}
{{ value }}
</button>
当用户单击任何 button
时,只有它的值将设置为 true
,其余的值为 false
,如:
openOptions(clickedKey) {
Object.keys(this.collection).forEach((key) => {
this.collection[key] = key === clickedKey ? true : false;
});
},
我是 Vuejs 的新手,我想知道如何在 Vuejs 中完成这项工作
我有一组不同的数据:
data() {
return {
recents: false,
frontend: false,
backend: false,
devops: false,
tutoriais: false,
};
},
当我点击一个按钮时,它会调用 openOptions()
并将特定的 属性 更改为 true 或 false。
openOptions(e) {
const optionClicked = e.target.text.toLowerCase();
this[optionClicked] = !this[optionClicked];
},
但是,我不能有 2 个属性为真。我需要将其他所有内容设置为 false
,但我很难理解如何完成这项工作。所以基本上我需要的是
set the one I clicked to true
and the rest to false
有人可以帮我吗?
您可以先创建一个对象作为单个实体,我使用了一个名称为 collection
现场演示
data() {
return {
collection: {
recents: false,
frontend: false,
backend: false,
devops: false,
tutoriais: false,
},
};
},
然后,您可以在每个元素上附加点击监听器(如果需要,您也可以在其父元素上附加一个单击监听器)
<button
v-for="[key, value] in Object.entries(this.collection)"
:key="key"
v-on:click="() => openOptions(key)"
>
{{ key }}
{{ value }}
</button>
当用户单击任何 button
时,只有它的值将设置为 true
,其余的值为 false
,如:
openOptions(clickedKey) {
Object.keys(this.collection).forEach((key) => {
this.collection[key] = key === clickedKey ? true : false;
});
},