2017-10-14 94 views
1

这工作:如何添加多个属性 - vue.js

<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

不知道我的理解 - U希望将一齐在单个对象的属性通过? – LiranC

+0

@LiranC是的,就这么简单,只需将属性分组并应用于元素。 – Syed

回答

1

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

+1

感谢您的帮助:)以下是我所做的: 以下是我所称的窗体: '' 这里是我的模板: ' ' 该脚本看起来像现在按照你的建议,这是行得通的:) 'props:{isReadOnly:{default:false,type:Boolean}}, computed:{readOnlyAttributes(){return {readonly:this.isReadOnly,disabled:this.isReOOly} }} – Syed