I am using ngx-bootstrap's modals and I want to change the CSS class modal-dialog with some other properties.
My question is: How do I dynamically change the properties of for example this class in Angular?
I have played around with ElementRef, TemplateRef and Rendere2 but not found any solution.
Thanks for you help in advance.
EDIT 1:
I am opening the modal using BsModalService, so my template looks like this:
<ng-template #defaultModalTemplate>
Content
</ng-template>
I open the dialog like this:
public openModal(): void {
this.modalRef = this.modalService.show(this.templateRef);
if (this.renderer && this.templateRef) { // trying to extract .modal-dialog here
}
}
the variable templateRef is defined like this:
@ViewChild('defaultModalTemplate') public templateRef?: TemplateRef<any>;
you can do that by class binding or NgClass
<div [class.className]="proerty(boolean)">some text or elements</div>
property here if it true will active/add the class false deactivate/remove
or
<div [ngClass]="{'className': expiration }">some text or elements</div>
with this approach you can use more than class and control them by expiration all you need to do separate them by , like so {'className': expiration, 'anotherClass': expiration }
I did need to use this just now, and found a way that worked for me. What you can do is like this:
<div class="{{className}}">
Content
</div>
and Whenever you change the value of the class it will be applicated on the DOM.
You can initialize the variable className with whatever class you want and then change it to whatever class you want afterwards. This is an application for Multi-Theme, there are more things you can do with this like making a service and changing the class in another component and then send that className to the component where you change the class and then theme changed.
Happy Coding 😊
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With