Angular's ngClass directive allows you to conditionally apply CSS classes to HTML elements based on data or expressions within your component. This provides a powerful way to control the element's appearance dynamically.
Template:
<div [ngClass]="myClasses">This element's classes change dynamically!</div>
import { Component } from '@angular/core';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.html',
styleUrls: ['./my-component.css']
})
export class MyComponent {
myClasses: any;
isActive: boolean = false;
constructor() {
this.myClasses = {
'highlight': this.isActive, // Class applied based on condition
'large': true // Always applied class
};
}
toggleActive() {
this.isActive = !this.isActive;
this.myClasses = {
'highlight': this.isActive,
'large': true
};
}
}
Explanation:
- The [ngClass] directive binds an object (myClasses) to the element's class attribute.
- The myClasses object contains key-value pairs where the key is the CSS class name and the value is a boolean expression.
- A class is added to the element only if the corresponding value in myClasses evaluates to true.
- You can update the myClasses object in your component's methods (e.g., toggleActive) to dynamically change the applied classes.
Additional Options:
- String: You can use a space-separated string to define multiple classes that are always applied.
Array: An array of strings or objects allows for combining different approaches within ngClass.
Remember:
ngClass offers flexibility for conditional class application.
Ensure your CSS classes are defined for proper styling effects.
This approach provides a versatile way to manage class names based on your application's logic, making your Angular components more dynamic and responsive.
Top comments (2)
Hi Kavindu Karunasena,
Your tips are very useful.
Thanks for sharing.
Thanks, Glad you found the tips helpful.