如何添加多个属性 - vue.js

Sye*_*yed 7 javascript vue.js vuejs2

这有效:

<input v-model="project.name" :readonly="isReadOnly" :disabled="isReadOnly">
Run Code Online (Sandbox Code Playgroud)

有没有办法让下面的代码工作?

<input v-model="project.name" {{ readOnlyAttr }} >
<input v-model="project.name" {{ isReadOnly : 'readonly disabled' ? ''}}>
Run Code Online (Sandbox Code Playgroud)

脚本如下:

<script>
  export default {
    props: {
      isReadOnly: {
        default: ture,
        type: Boolean
      }
    },
    data () {
      return {
        readOnlyAttr: 'readonly disabled'
      }
    }
  }
</script>
Run Code Online (Sandbox Code Playgroud)

Lir*_*anC 9

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;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)