Comment mettre de la classe=“active” à premier élément vuejs pour la boucle
Je suis en train d'apprendre vue.js. Je suis l'ajout d'une liste d'éléments, je veux ajouter class="active"
seulement le premier élément de la boucle for. voici mon code:
<div class="carousel-inner text-center " role="listbox">
<div class="item" v-for="sliderContent in sliderContents">
<h1>{{ sliderContent.title }}</h1>
<p v-html="sliderContent.paragraph"></p>
</div>
</div>
Ainsi, le premier élément devrait ressembler à quelque chose:
<div class="item active">
<h1>WELCOME TO CANVAS</h1>
<p>Create just what you need for your Perfect Website. Choose from a wide<br>range of Elements & simple put them on your own Canvas</p>
</div>
Je suis en mesure d'obtenir les données pour que tout fonctionne parfaitement bien.
Et voici mon code de script:
<script>
export default{
data() {
return {
sliderContents: [
{
title: "WELCOME TO CANVAS",
paragraph: "Create just what you need for your Perfect Website. Choose from a wide<br>range of Elements & simple put them on your own Canvas"
},
{
title: "WELCOME TO CANVAS",
paragraph: "Create just what you need for your Perfect Website. Choose from a wide<br>range of Elements & simple put them on your own Canvas"
},
{
title: "WELCOME TO CANVAS",
paragraph: "Create just what you need for your Perfect Website. Choose from a wide<br>range of Elements & simple put them on your own Canvas"
},
{
title: "WELCOME TO CANVAS",
paragraph: "Create just what you need for your Perfect Website. Choose from a wide<br>range of Elements & simple put them on your own Canvas"
}
]
}
}
}
M'aider.
- v-pour="(index, sliderContent) dans sliderContents", puis utiliser une instruction if pour ajouter la classe sur l'index 0 ou 1. TBH je ne sais pas vue mais c'est ce que vous allez Angulaire.
Vous devez vous connecter pour publier un commentaire.
JS:
CSS:
HTML:
Ci-dessus est un extrait de la démonstration d'une solution à votre problème. Voici un aperçu de celui-ci:
– https://vuejs.org/v2/guide/list.html#Basic-Usage
La
v-for
directive a un deuxième argument en vous donnant l'index de l'élément.Puisque vous voulez le
active
classe sur le premier élément, vous pouvez utiliser une expression de tester si laindex
est0
et le lier à la classe de l'attribut.v-for
laindex
argument est en troisième position (v-for="(value, key, index) in object"
. Vous pouvez utiliser cet argument dans l'expression lié à l'attribut de classe de tester si l'élément est le premier. Mais notez: lors de l'itération sur un objet, l'ordre est basé sur la clé de l'énumération de l'ordre deObject.keys()
, ce qui n'est pas garanti d'être cohérente dans le moteur JavaScript implémentations.key
, par opposition à laindex
. La directive devrait ressembler:v-for="(value, key) in object"
. Et la classe de liaison::class="{ 'active': key === 'YOUR_STRING' }"
.La solution la plus simple est de vérifier chaque élément si
index
est égal à 0, puis le réglage de laactive
de la classe (ou la classe nécessaire). Voici le code de définition de classe:Voici de travail exemple de faire de la
Bootstrap Tabs
:Aussi, si vous avez plusieurs classes, vous pouvez les mélanger comme ceci: