Je souhaite appliquer une hauteur dynamique à ma table. donc pour cela j'ai écrit une fonction qui me donne la hauteur disponible à l'écran. et après cela, j'utilise cette hauteur pour ma table. supposons que je reçois une fonction de dispoHeight en tant que 440 px. J'ai quatre tables a, b, c, d et je peux développer et réduire la table maintenant je veux postuler -
[ngStyle]="{ 'height.px': expanded ? availHeight : table === 'a' ?
(availHeight -150, 'width': 100 + '%') : (availHeight - 30, 'width': 100 + '%')}">
J'ai essayé d'écrire ceci comme -
ngStyle=> if expanded== true then height should be == availHeight for all four tables and if expanded== false and table=='a' then height should be availHeight-150 else (for b,c,d) height should be availHeight-30
Mais j'obtiens une erreur dans ceci. p>
Veuillez aider comment puis-je écrire ceci dans des conditions ternaires.
Merci d'avance
3 Réponses :
Vous pouvez utiliser l'attribut de style en ligne séparément pour les deux
comme ceci:
[style.height.px]="expanded ? availHeight : table === 'a' ? availHeight-150 : availHeight-30" [style.width.%]="expanded ? 100 : 'initial'"
si développé est faux, la largeur «initiale» est ignorée.
Je pense que vous pouvez faire quelque chose comme ceci:
[ngStyle]="{
'height': expanded ? availHeight
: !expanded && table=='a'? availHeight - 30
: defaultVal, //some default val
'width': expanded ? '100%'
: !expanded && table=='a'? (100-10)+'%'
: defaultVal, //some default val
}"
Vous aurez beaucoup plus de facilité à faire ce type de logique dans votre composant et à exposer le style résultant au modèle html en tant que variable.
Ce n'est pratiquement jamais une bonne idée d'avoir une logique comme celle-ci directement dans le modèle.