Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does it mean for a pipe or directive to be 'standalone' in Angular?
A standalone pipe or directive in Angular can be used independently without needing to be declared inside an NgModule. It simplifies reuse and reduces boilerplate.
Click to reveal answer
beginner
How do you declare a standalone directive in Angular?
You add the property standalone: true in the directive's decorator, like @Directive({ standalone: true, selector: '[appExample]' }).
Click to reveal answer
intermediate
Can standalone pipes and directives be imported into components directly?
Yes, standalone pipes and directives can be imported directly into a component's imports array, avoiding the need for NgModule imports.
Click to reveal answer
intermediate
What is one benefit of using standalone pipes and directives in Angular projects?
They reduce the complexity of module management, making components more self-contained and easier to maintain or share.
Click to reveal answer
advanced
How does Angular 16+ support standalone pipes and directives?
Angular 16+ fully supports standalone pipes and directives, allowing developers to build applications without NgModules by using the new standalone: true flag.
Click to reveal answer
What property must you add to a directive to make it standalone?
Aexport: true
Bmodule: standalone
Cindependent: yes
Dstandalone: true
✗ Incorrect
The correct property is standalone: true in the directive decorator.
Can standalone pipes be used without importing an NgModule?
AOnly if declared in the root module
BYes, they can be imported directly into components
CNo, they always require an NgModule
DOnly in Angular versions before 17
✗ Incorrect
Standalone pipes can be imported directly into components without needing an NgModule.
Which Angular version introduced full support for standalone pipes and directives?
AAngular 16+
BAngular 12
CAngular 9
DAngular 15
✗ Incorrect
Angular 16+ introduced full support for standalone pipes and directives.
What is a key advantage of standalone directives?
AThey reduce the need for NgModules
BThey require more boilerplate code
CThey cannot be reused
DThey only work in templates
✗ Incorrect
Standalone directives reduce the need for NgModules, simplifying code structure.
How do you use a standalone pipe in a component?
AUse it without any import
BDeclare it in the NgModule only
CImport it in the component's imports array
DRegister it in the main.ts file
✗ Incorrect
Standalone pipes must be imported in the component's imports array to be used.
Explain what standalone pipes and directives are and how they change Angular development.
Think about how Angular used to require NgModules for these.
You got /4 concepts.
Describe the steps to create and use a standalone directive in an Angular component.
Focus on declaration, import, and usage.
You got /3 concepts.
Practice
(1/5)
1. What does adding standalone: true in an Angular pipe or directive decorator do?
easy
A. It disables the pipe or directive from being used in templates.
B. It allows the pipe or directive to be used without declaring it in an NgModule.
C. It makes the pipe or directive private to the module.
D. It automatically imports the pipe or directive into all components.
Solution
Step 1: Understand the role of standalone flag
The standalone: true flag in Angular marks a pipe or directive so it does not require declaration inside an NgModule.
Step 2: Effect on usage
This means you can import the standalone pipe or directive directly into components without needing a module.
Final Answer:
It allows the pipe or directive to be used without declaring it in an NgModule. -> Option B
Quick Check:
standalone: true means no NgModule needed [OK]
Hint: Standalone means no NgModule declaration needed [OK]
Common Mistakes:
Thinking standalone makes directive private
Assuming standalone disables usage
Believing standalone auto-imports everywhere
2. Which of the following is the correct way to declare a standalone directive in Angular?
easy
A. @Directive({ selector: '[appHighlight]' })
B. @Directive({ selector: '[appHighlight]', standalone: false })
C. @Directive({ selector: 'appHighlight', standalone: true })
D. @Directive({ selector: '[appHighlight]', standalone: true })
Solution
Step 1: Check selector syntax
For attribute directives, the selector must be in square brackets, e.g., '[appHighlight]'.
Step 2: Verify standalone flag
To make a directive standalone, standalone: true must be set in the decorator.
Final Answer:
@Directive({ selector: '[appHighlight]', standalone: true }) -> Option D
Quick Check:
Standalone directive needs selector with [] and standalone: true [OK]
Hint: Standalone directives need standalone: true and correct selector [OK]
Common Mistakes:
Missing square brackets in selector for attribute directive
Setting standalone to false or omitting it
Using element selector instead of attribute selector
3. Given this standalone pipe:
@Pipe({name: 'exclaim', standalone: true})
export class ExclaimPipe implements PipeTransform {
transform(value: string): string {
return value + '!';
}
}
What will be the output of this template?
<div>{{ 'Hello' | exclaim }}</div>
medium
A. Error: Pipe 'exclaim' not found
B. <div>Hello!</div>
C. <div>Hello</div>
D. <div>Hello!!</div>
Solution
Step 1: Check pipe declaration and usage
The pipe is standalone and must be imported into the component using it.
Step 2: Analyze template usage without import
If the component does not import the standalone pipe, Angular will not recognize it, causing an error.
Final Answer:
Error: Pipe 'exclaim' not found -> Option A
Quick Check:
Standalone pipe must be imported to use [OK]
Hint: Standalone pipes need explicit import in component [OK]
When you use <div appColor>Text</div> in a component template but forget to import ColorDirective in the component, what happens?
medium
A. The directive applies but with default styles.
B. The text appears red as expected.
C. Angular throws a template parse error about unknown directive.
D. The app crashes at runtime with a null reference error.
Solution
Step 1: Understand standalone directive import
Standalone directives must be imported into the component's imports array to be recognized.
Step 2: Effect of missing import
If the directive is not imported, Angular does not know about it and throws a template parse error.
Final Answer:
Angular throws a template parse error about unknown directive. -> Option C
Quick Check:
Missing import causes template parse error [OK]
Hint: Always import standalone directives in component imports [OK]
Common Mistakes:
Assuming directive works without import
Expecting default styles without directive
Confusing runtime errors with template errors
5. You want to create a standalone pipe that converts a string to uppercase and use it in multiple components without adding it to any NgModule. Which steps are correct?
1. Add standalone: true in the pipe decorator. 2. Import the pipe in each component's imports array. 3. Declare the pipe in a shared NgModule. 4. Use the pipe in templates after importing.
Choose the correct combination.
hard
A. Steps 1, 2, and 4 only
B. Steps 1 and 3 only
C. Steps 2, 3, and 4 only
D. All steps 1, 2, 3, and 4
Solution
Step 1: Understand standalone pipe creation
Adding standalone: true allows the pipe to be used without NgModule declaration.
Step 2: Import in components and use
Each component that uses the pipe must import it in its imports array and then use it in templates.
Step 3: NgModule declaration is unnecessary
Declaring the pipe in a shared NgModule is not needed and contradicts standalone usage.
Final Answer:
Steps 1, 2, and 4 only -> Option A
Quick Check:
Standalone pipe needs standalone: true, import in components, use in template [OK]
Hint: Standalone pipes skip NgModule, import in components [OK]