Je suis en train de créer une application dans Angular 6.
J'utilise ngx-smart-modal pour gérer tous mes modaux.
J'ai plus de 20 modaux dans mon application.
Comment appliquer le CSS à chacun de manière unique.
J'ai essayé d'utiliser le paramètre [customClass] dans leur documentation, mais je suis relativement nouveau dans Angular / HTML / CSS / etc, et je n'ai pas pu le faire fonctionner.
Je peux changer les tailles de mes modaux dans le monde utilisant
.nsm-dialog.modal { width: 50vw; height: 50vh; }
Mais impossible de répliquer pour des modaux individuels
HTML
<ngx-smart-modal #Create identifier="Create" customClass="'modal'">
/deep/ .nsm-dialog{ -insert style- }
Je voudrais avoir chaque modal avec un CSS unique.
Ex.
* La taille Modal1 est 50vw x 50vh
* La taille Modal2 est 20vw x 40vh
* etc.
3 Réponses :
Pour utiliser la directive customClass avec des crochets, comme [customClass], vous devez passer une chaîne à la directive, comme:
<ngx-smart-modal [customClass]="'my-custom-class'"></ngx-smart-modal>
Enfin, vous pouvez styliser ceci et seulement ce modal avec my- classe personnalisée.
J'avais le même problème.
Ma résolution consistait à créer un fichier ngx-modal.scss et à l'inclure dans style.scss après @ import "~ ngx-smart-modal / ngx-smart-modal";
J'ai dû ajouter ! important à quelques styles. Je n'ai pas aimé ça mais ça a marché.
HTML - dans le composant
.confirmation-modal { background-color: black !important; border: 1px solid grey; .modal-body { color: white; display: flex; align-items: center; justify-content: center; } .modal-footer { display: flex; align-items: center; justify-content: center; padding: 1rem; border-top: 1px solid transparent; border-bottom-right-radius: 0.3rem; border-bottom-left-radius: 0.3rem; top: 60px; position: relative; } }
scss - ngx-modal.scss
<ngx-smart-modal #modalName identifier="modalName" [customClass]="'confirmation-modal'"> </ngx-smart-modal>
Pour la manière normale, les exemples indiqués ci-dessus fonctionneront, mais si vous créez des modaux de manière dynamique, vous devez faire
const optionModel: INgxSmartModalOptions = { closable: true, escapable: false, dismissable: false, customClass: "signSowClass" }; let modal; modal = this.ngxSmartModalService.create('signSow', SignSowComponent, optionModel).open()
Vous pouvez passer la classe personnalisée à travers les options mentionnées ci-dessus