我有一个输入:
<input type="text" id="name" class="form-control" name="name" v-model="form.name" :disabled="validated ? '' : disabled">
在我的Vue.js组件中,我有:
..
..
ready() {
this.form.name = this.store.name;
this.form.validated = this.store.validated;
},
..
validated
是 boolean
,它可以是 0
或 1
,但无论数据库中存储了什么值,我的输入始终被禁用 .
如果 false
,我需要禁用输入,否则应该启用和编辑 .
更新:
这样做总是 enables 输入(无论我在数据库中有0还是1):
<input type="text" id="name" class="form-control" name="name" v-model="form.name" :disabled="validated ? '' : disabled">
这样做总是 disabled 输入(无论我在数据库中有0还是1):
<input type="text" id="name" class="form-control" name="name" v-model="form.name" :disabled="validated ? disabled : ''">
7 回答
要删除已禁用的prop,应将其值设置为
false
. 这需要是false
的布尔值,而不是字符串'false'
.因此,如果
validated
的值为1或0,则根据该值有条件地设置disabled
prop . 例如 . :Here is an example .
你可以有一个计算属性,它返回一个布尔值,取决于你需要的标准 .
然后把你的逻辑放在计算属性中......
不难,检查一下 .
jsfiddle
您的disabled属性需要一个布尔值:
<input :disabled="validated" />
注意我是如何只检查
validated
- 这应该作为0 is falsey
...例如0 is considered to be false in JS (like undefined or null)
1 is in fact considered to be true
要格外小心,试试:
<input :disabled="!!validated" />
这个双重否定将
falsey
或truthy
的0
或1
的值变为false
或true
不相信我?进入你的控制台并输入
!!0
或!!1
:-)另外,为了确保您的号码
1
或0
绝对是作为数字而不是字符串'1'
或'0'
预先挂起您正在检查的值+
例如<input :disabled="!!+validated"/>
这会将数字的字符串转换为数字,例如+1 = 1 +'1' = 1
就像David Morrow上面所说的那样,你可以将你的条件逻辑放入一个方法中 - 这会给你更多 readable 代码 - 只需返回你要检查的条件的方法 .您可以在 vue.js 中操纵
:disabled
属性 .它将接受一个布尔值,如果它是 true ,则输入被禁用,否则它将被启用...
在你的情况下像下面这样结构的东西,例如:
另请阅读以下内容:
您可以根据其值创建计算属性并启用/禁用任何表单类型 .
可以使用此添加条件 .