Directives help you add special behavior to HTML elements easily. They let you create reusable features that work like new HTML tags or attributes.
Why directives are needed in Angular
import { Directive, ElementRef, Renderer2 } from '@angular/core'; @Directive({ selector: '[appExample]' }) export class ExampleDirective { constructor(private el: ElementRef, private renderer: Renderer2) { // directive logic here } }
The @Directive decorator defines a directive and its selector.
The selector can be an attribute, element, or class to apply the directive.
@Directive({ selector: '[appHighlight]' })
export class HighlightDirective {
constructor(el: ElementRef) {
el.nativeElement.style.backgroundColor = 'yellow';
}
}<appCustomButton>.@Directive({ selector: 'appCustomButton' })
export class CustomButtonDirective {
// This directive can be used as a new HTML tag
}This example shows a simple directive that changes the text color to red. When you add appRedText to a paragraph, the directive runs and changes its style.
import { Component, Directive, ElementRef } from '@angular/core'; @Directive({ selector: '[appRedText]' }) export class RedTextDirective { constructor(el: ElementRef) { el.nativeElement.style.color = 'red'; } } @Component({ selector: 'app-root', template: `<p appRedText>This text will be red because of the directive.</p>` }) export class AppComponent {}
Directives help keep your HTML clean by moving behavior to reusable code.
They can manipulate the DOM safely using Angular's Renderer2 or ElementRef.
Always use directives for behavior, not for layout or styling alone.
Directives add special behavior to HTML elements.
They make your code reusable and easier to manage.
You can create new HTML tags or attributes with directives.
Practice
Solution
Step 1: Understand the role of directives
Directives allow you to add custom behavior to HTML elements beyond standard HTML capabilities.Step 2: Compare with other options
Options A, C, and D relate to styling, backend, and database, which are not the purpose of directives.Final Answer:
To add special behavior to HTML elements -> Option AQuick Check:
Directives add behavior = B [OK]
- Confusing directives with CSS styling
- Thinking directives manage backend logic
- Assuming directives handle database tasks
Solution
Step 1: Identify Angular directive syntax
Structural directives use the asterisk (*) before the directive name to modify the DOM structure.Step 2: Check other symbols
# is for template references, ? and @ are invalid for directives.Final Answer:
<div *myDirective></div> -> Option CQuick Check:
Structural directives use * prefix = A [OK]
- Using # which is for template references
- Using ? or @ which are invalid syntax
- Omitting the * for structural directives
<button appHighlight>Click Me</button>
What will happen when this directive is applied?
Solution
Step 1: Understand typical directive behavior
Directives like 'appHighlight' usually change the appearance, such as background color, to highlight elements.Step 2: Evaluate other options
Changing text case or disabling button is less common for a highlight directive; 'Nothing happens' is unlikely if directive is implemented.Final Answer:
The button background color changes -> Option DQuick Check:
Highlight directive changes background = A [OK]
- Assuming text changes instead of style
- Thinking directive disables element
- Believing directive has no effect
<div *myDirective>Content</div>
Assuming
myDirective is a component, not a structural directive.Solution
Step 1: Understand directive vs component usage
Structural directives use * syntax; components are used as elements, not with *.Step 2: Check other options
Directive name can be valid, div can have directives, and closing tag is present.Final Answer:
Components cannot be used with * syntax -> Option AQuick Check:
* syntax only for structural directives = D [OK]
- Using * with components
- Thinking div can't have directives
- Ignoring correct closing tags
Solution
Step 1: Identify directive purpose in reuse
Directives add behavior like changing text color reusable on any element without altering HTML structure.Step 2: Eliminate incorrect uses
Directives do more than create tags, do not replace components, and do not fetch data.Final Answer:
Directives let you add reusable behavior to any HTML element without changing its structure -> Option BQuick Check:
Directives add reusable behavior = C [OK]
- Thinking directives only create new tags
- Confusing directives with components
- Assuming directives handle data fetching
Ready to prove it?
Pass the test and this pattern moves unknown
