是否可以使用 VueJS 和 BootstrapVue 禁用页面的所有输入?

Is it possible to disable all the inputs from a page with VueJS and BootstrapVue?

我在一页中有多个按钮和表单输入。所有这些按钮和表单输入都需要根据条件禁用或启用。

我知道可以在标签内使用 disabled 关键字来禁用特定的输入或按​​钮。另外,我可以只添加代码

:disabled="true"

根据变量的布尔值禁用输入。 但是,这个解决方案对我来说是不可接受的,因为我必须将这行代码添加到我页面上的每个输入(我将来可能会创建新页面,包含尽可能多的输入)。

我想知道是否有一种方法可以让我简单地禁用所有输入的父容器,从而禁用子项(输入)。

如果您在 运行 您的代码时检查 VM 的 Vue 实例本身,那么当您 console.log(this),

如果你使用正确的范围,它会给你类似的输出:

{
$attrs
$options
.......
$el
}

在 $el 中有用于访问 firsElementChild、previousElementChild、previousElementSibling 等的对象属性。有很多 HTML 相关属性,但是,以这种方式访问​​ HTML 元素会很快变得混乱。我认为您最好的解决方案是您已经提到的或动态更改 CSS class 的解决方案。

如果您使用 v-if 在父级上进行条件渲染,您也可以实现非常相似的功能。

See: Conditional rendering