我想使用'v-model'实现常见的模态函数。我的代码如下所示:实际上,该功能确实工作(它显示警报消息),但对话框有'v-model'弹出continuosly即使他们是'假'.请帮助我.. T_T
<template>
<v-dialog v-model="modals.add_directory">
test dialog
</v-dialog>
</template>
<script lang="ts" setup>
const modals = {
add_directory: ref(false),
add_lvm: ref(false),
add_lvmthin: ref(false),
add_nfs: ref(false),
add_smbcifs: ref(false),
add_cephfs: ref(false),
add_rbd: ref(false),
add_zfs: ref(false),
};
const open_modal = (modalName) => {
alert(modals[modalName].value);
modals[modalName].value = !modals[modalName].value;
};
</script>
1条答案
按热度按时间eagi6jfj1#
是的,这是Vue的一个有点令人恼火的行为,当模板中的引用来自数组或对象时,它们不会被解包(参考this bug)。你必须自己解包,即写
modals.add_directory.value
:你可以在代码片段中看到它的工作方式:
或者,您可以使用
reactive
,它没有此限制:这样行吗