这有效:
<input v-model="project.name" :readonly="isReadOnly" :disabled="isReadOnly">
有没有办法让下面的代码工作?
<input v-model="project.name" {{ readOnlyAttr }} >
<input v-model="project.name" {{ isReadOnly : 'readonly disabled' ? ''}}>
脚本如下:
<script>
export default {
props: {
isReadOnly: {
default: ture,
type: Boolean
}
},
data () {
return {
readOnlyAttr: 'readonly disabled'
}
}
}
</script>
答案 0 :(得分:2)
v-bind
是你的朋友。
因为您希望计算属性,所以我创建了一个计算方法,以便在每次更改isReadOnly
值时构建对象。
如果要绑定静态属性组,可以使用data
方法。
<template>
<div>
<input v-model="project.name" v-bind="readOnlyAttributes">
</div>
</template>
<script>
export default {
name: 'example',
computed: {
readOnlyAttributes() {
return {
readonly: this.isReadOnly,
disabled: this.isReadOnly ? 'readonly' : ''
}
},
isReadOnly() {
// returning always true for the example
return true;
}
}
}