2017-01-24 3 views
2

Ich möchte einen computed Stil auf ein Eingabeformular anwenden. Die documentation erklärt, wie man das macht, aber nur für einfache Stile.Wie verwende ich einen Attributselektor mit vue.js?

Ich brauche das Äquivalent von

input[type="text"], textarea { 
    background-color : red; 
} 

anzuwenden, sondern es nicht klar, für mich ist, wie die [type="text"] Bit zu vermitteln.

Mit ihm wörtlich funktioniert nicht:

var vm = new Vue({ 
 
    el: "#root", 
 
    data: { 
 
    password: '', 
 
    }, 
 
    computed: { 
 
    passwordStyle: function() { 
 
     var style = {} 
 
     style['input[type="text"]'] = 'red'; 
 
     style['textarea'] = 'blue'; 
 
     return style; 
 
    } 
 
    } 
 
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js"></script> 
 
<div id="root>"> 
 
    <input type="text" name="password" autofocus="true" v-bind:style='passwordStyle'> 
 
</div>

Antwort

1

Sie müssen nur den Stil passieren, nicht der CSS-Selektor, wie:

var vm = new Vue({ 
 
    el: "#root", 
 
    data: { 
 
    password: '', 
 
    }, 
 
    computed: { 
 
    passwordStyle: function() { 
 
     return { 
 
     backgroundColor: 'red' 
 
     }; 
 
    } 
 
    } 
 
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js"></script> 
 
<div id="root"> 
 
    <input type="text" name="password" autofocus="true" :style="passwordStyle"> 
 
</div>

+0

Danke. Ich war so konzentriert auf meinen Code, dass ich nicht merkte, dass ich im Beispiel vergessen habe, "Hintergrundfarbe" überhaupt zu übergeben ... – WoJ

0

Können Sie Ihren Anwendungsfall wenig aufwendig erklären, die Verwendung von v-bind:style ist, wenn Sie wollen den Stil ein Element dynamisch ändern , abhängig von einer Variablen, wie in docs, folgenden Code mit Änderung der CSS abhängig von isActive und hasError Variable:

<div class="static" 
    v-bind:class="{ active: isActive, 'text-danger': hasError }"> 
</div> 

data: { 
    isActive: true, 
    hasError: false 
} 

Ich sehe nicht in Ihrem Code ändern Sie Stil basierend auf einer Variablen.

+0

das wahr ist, mein Beispiel auf ein Minimum war haben nur die Stile angewendet. In der Realität wird 'passwordStyle' basierend auf einem komplexen Satz von Regeln unter Verwendung anderer Elemente der 'vm'' data' Variablen berechnet. – WoJ

+0

@WoJ Fügen Sie diesen Anwendungsfall etwas detaillierter hinzu. – Saurabh

Verwandte Themen