🔷 What is a Directive in Angular?
A directive is a special instruction in Angular that changes the behavior, appearance, or structure of DOM elements.
👉 In simple words:
Directives teach HTML new tricks.
🧩 Types of Directives in Angular
Angular provides three types of directives:
Structural Directives
Attribute Directives
🧱 1️⃣ Structural Directives (Change DOM Structure)
📌 Structural directives add, remove, or manipulate elements in the DOM.
👉 They are identified by * (asterisk)
🔹 Why * is used?
The * tells Angular:
“This directive will change the structure of the DOM.”
Internally, Angular converts it into <ng-template>.
✅ Common Structural Directives
Conditionally adds/removes elements.
✔ True → element exists
❌ False → element removed from DOM
🔸 *ngFor
Used to loop through collections.
🔸 *ngSwitch
Used for multiple conditions.
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
// Used for ngIf
isLoggedIn: boolean = false;
// Used for ngFor
students: string[] = ['Rahul', 'Amit', 'Neha', 'Pooja'];
toggleLogin() {
this.isLoggedIn = !this.isLoggedIn;
}
}
📄 Template File – app.component.html
🔹 Example 1: *ngIf (Condition Based Rendering)
<h2>*ngIf Example</h2>
<button (click)="toggleLogin()">
Toggle Login
</button>
<p *ngIf="isLoggedIn">
Welcome! You are logged in.
</p>
<p *ngIf="!isLoggedIn">
Please login first.
</p>
<hr />
🔹 Example 2:
*ngFor (Loop / List Rendering)
<h2>*ngFor Example</h2>
<ul>
<li *ngFor="let student of students; index as i">
{{ i + 1 }}. {{ student }}
</li>
</ul>
<hr />
app.component.html🔹 Role Selection Buttons
🧠 Structural Directive Summary
| Directive | Purpose |
|---|---|
*ngIf | Conditional rendering |
*ngFor | Loop rendering |
*ngSwitch | Multiple conditions |
🎨 2️⃣ Attribute Directives (Change Appearance/Behavior)
📌 Attribute directives do not remove elements
They modify properties, styles, or behavior of elements.
👉 Used without *
✅ Common Attribute Directives
🔹 ngClass
Dynamically add/remove CSS classes.
🔹 ngStyle
Apply dynamic inline styles.
🔹 [disabled], [hidden]
Control element properties.
🧠 Attribute Directive Summary
| Directive | Purpose |
|---|---|
ngClass | CSS class binding |
ngStyle | Inline style binding |
[hidden] | Show/Hide (CSS) |
⚠️ *ngIf vs [hidden] (Interview Favorite)
| Feature | *ngIf | [hidden] |
|---|---|---|
| DOM Removal | ✅ Yes | ❌ No |
| Performance | Better | Less |
| Visibility | Element destroyed | CSS hidden |
0 Comments
POST Answer of Questions and ASK to Doubt