Conserver les propriétés Flex réactives lors de l'itération de tableaux à l'aide de guidons
P粉098417223
2023-09-02 23:45:35
<p>J'ai le code suivant (en utilisant guidons, code de travail de JSFiddle) : </p>
<pre class="brush:php;toolbar:false;"><div class="cards-container">
{{#each this.cards}}
<div
class = "conteneur de carte conteneur-col-inner col-12 col-md-6 col-lg-3"
>
<div class="image-card">
<div class="contenu de l'image">
<p class="titre">{{titre}}</p>
</div>
</div>
</div>
{{/chaque}}
</div></pre>
<pre class="brush:php;toolbar:false;">{
"3columnLayout": faux,
"cartes": [
{
"titre" : "Carte 1"
},
{
"titre" : "Carte 2"
},
{
"titre" : "Carte 3"
}
]
}</pré>
<p>Fondamentalement, il parcourt le tableau de cartes et crée un <code>card-container</code> Utilisez ensuite bootstrap pour attribuer une classe CSS à chaque div, par exemple <code>col-md-6</code> afin que </p>
<ul>
<li>Mobile : les éléments apparaissent dans une seule colonne</li>
<li>Tablettes : les éléments apparaissent dans 2 colonnes</li>
<li>Bureau : éléments affichés dans 3 colonnes</li>
</ul>
<p>Tout cela fonctionne comme prévu et donne visuellement l'interface utilisateur souhaitée (quel que soit le nombre de cartes) : Exemple ci-dessous : </p>
<p>Cependant, comme indiqué dans le JSON, j'ai besoin d'une propriété en dehors du niveau de la carte individuelle pour déterminer si le bureau doit passer d'une disposition à 4 colonnes à une disposition à 3 colonnes. </p>
<p>Je ne voulais pas répéter cette propriété pour chaque carte du tableau de cartes, j'ai donc réorganisé mon code comme indiqué dans mon extrait de code (à l'aide de guidons) : https://jsfiddle.net/stcfa5wh/20/< ; /p>
<p>Cependant, cela signifie désormais que même si je peux accéder à la valeur <code>3columnLayout</code> : le code HTML est transféré sur la page et je ne peux plus utiliser <code>col</code> comme je le fais ; Fait avant. </p>
<p>Par exemple, sur une tablette, je pourrais définir chaque <code>image-card</code> sur une largeur de 50 %, mais cela ignore le besoin de lignes. </p>
<p>Quelqu'un peut-il suggérer un moyen de préserver la structure du HTML tout en implémentant les attributs de niveau supérieur (par exemple <code>3columnLayout</code>) ? </p>
Je ne comprends pas pourquoi lorsque vous essayez d'implémenter
3columnLayout
标志时停止使用 Bootstrap。使用 Bootstrap,我们将在每列上使用类col-lg-4
pour créer une mise en page à 3 colonnes. Par conséquent, l'expression conditionnelle dont nous avons besoin pour chaque colonne est :{{#if ../3columnLayout}}col-lg-4{{else}}col-lg-3{{/if}}
.