gpt4 book ai didi

javascript - 如果具有 id 的元素不存在,则阻止安装组件

转载 作者:行者123 更新时间:2023-12-03 01:29:57 26 4
gpt4 key购买 nike

我正在开发一个使用表单生成器(Symfony)生成表单的项目。在某些情况下,下面的内部 Vue 组件根据作为 prop 传入的输入 id,将标准 TextArea 输入替换为更灵活的基于 html 的文本编辑器。

问题是,在某些情况下,id 为 image_id 的元素不会出现在页面上,因此会生成大量 JavaScript 错误(因为页面是使用模板呈现的)。

如果页面上有 id 为 #image_id 的元素,是否可以挂载 image-uploader 组件并防止否则完全安装组件?

组件片段

mounted() {
let DOMInput = document.getElementById(this.inputId);
//component does stuff if not null
//need to prevent the mounting of this component altogether if it is null

模板

<image-uploader input-id="image_id"></image-uploader>

最佳答案

您可以简单地在组件上添加一个 v-if 指令,并仅在找到 image_id 时才渲染它:

<image-uploader input-id="image_id" v-if="condition to check whether image-id exists"></image-uploader>

new Vue({
el: "#app",
data: {
idExist: null
},
mounted () {
this.idExist = document.getElementById('test')
}
})
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>

<div id="app">
<div id="test">test</div>
<div v-if="idExist">render if test is here</div>
</div>

关于javascript - 如果具有 id 的元素不存在,则阻止安装组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51348887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com