Directives & Pipes
Attribute Directives
Element Ka Appearance/Behavior Badalna
💡 Attribute directives ek makeup artist jaisa hai — element ki STRUCTURE (kya hai) nahi badalte, sirf uska LOOK/BEHAVIOR badalte hain (jaise color, cursor style) — element wahi rehta hai, bas "dressed up" different tarike se.
Attribute directives (structural directives ke ulat) element ki APPEARANCE ya BEHAVIOR change karte hain, DOM structure NAHI (element add/remove nahi karte). Built-in examples: ngClass (CSS classes toggle), ngStyle (inline styles set). * prefix nahi hota inke saath.
// ngClass — multiple conditional classes:
// <div [ngClass]="{ 'active': isActive, 'disabled': isDisabled }">
// ngStyle — multiple dynamic styles:
// <div [ngStyle]="{ 'color': textColor, 'font-size.px': fontSize }">
// Component:
export class StatusComponent {
isActive = true;
isDisabled = false;
textColor = 'blue';
fontSize = 16;
}🎨
Attribute directives ek makeup artist jaisa hai — element ki STRUCTURE (kya hai) nahi badalte, sirf uska LOOK/BEHAVIOR badalte hain (jaise color, cursor style) — element wahi rehta hai, bas "dressed up" different tarike se.
1 / 2
⚡ Quick Recap
- Attribute directives = appearance/behavior badalte hain, structure nahi
- ngClass/ngStyle = built-in, multiple values ek saath
- Koi * prefix nahi (structural directives se alag)
On this page (2 subtopics)
ngClass sirf object syntax hi nahi, ARRAY syntax bhi accept karta hai — jab classes conditionally nahi, sirf DYNAMICALLY (variable se) set karni hon.
// Array syntax:
// <div [ngClass]="['card', sizeClass, colorClass]">
export class CardComponent {
sizeClass = 'card-large';
colorClass = 'card-blue';
}
// Result: class="card card-large card-blue"Tip: Object syntax ({...}) CONDITIONAL classes ke liye better hai (true/false based), array syntax DYNAMIC-but-always-present classes ke liye — context ke hisaab se choose karo.
ngStyle mein property names ke saath UNIT suffix add kar sakte ho (jaise 'width.px', 'opacity.%') — Angular automatically unit append kar deta hai value ke saath.
// <div [ngStyle]="{ 'width.px': boxWidth, 'height.%': boxHeight }">
export class BoxComponent {
boxWidth = 200; // "200px" ban jaayega automatically
boxHeight = 50; // "50%" ban jaayega
}Tip: Ye suffix pattern [style.width.px]="boxWidth" jaisi single-property bindings mein bhi kaam karta hai — consistent Angular convention hai units specify karne ke liye.