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

时间:2017-10-14 06:19:21

标签: javascript vue.js vuejs2

这有效:

<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>

1 个答案:

答案 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;
    }
  }
}