📖 Scenario: You are building a simple Angular app that shows a list of product prices. The prices come as numbers, but you want to display them nicely formatted as currency with a dollar sign and two decimals.
🎯 Goal: Create an Angular component that uses a pipe to format the product prices as currency. This will help you understand why pipes are needed to transform data in templates.
📋 What You'll Learn
Create a list of product prices as numbers
Add a variable to hold the currency code 'USD'
Use the Angular currency pipe to format prices in the template
Display the formatted prices in a list
💡 Why This Matters
🌍 Real World
Formatting data for display is common in apps, like showing prices, dates, or percentages in a user-friendly way.
💼 Career
Understanding pipes helps you build clean, readable Angular templates and improves user experience by showing data clearly.
Progress0 / 4 steps
1
Create product prices list
Create an array called prices with these exact numbers: 10, 20.5, 30, 40.99
Angular
Hint
Use square brackets [] to create an array and separate numbers with commas.
2
Add currency code variable
Add a string variable called currencyCode and set it to 'USD'
Angular
Hint
Use single quotes for the string 'USD'.
3
Use currency pipe in template
In the Angular template, use *ngFor="let price of prices" to loop over prices. Inside the loop, display each price formatted with the Angular currency pipe using {{ price | currency:currencyCode }}
Angular
Hint
Use *ngFor directive on the <li> tag and the pipe symbol | to apply the currency pipe.
4
Complete component template
Wrap the list inside a <section> tag with an aria-label of 'Product Prices' for accessibility
Angular
Hint
Use semantic HTML and add aria-label for screen readers.
Practice
(1/5)
1. Why are pipes used in Angular templates?
easy
A. To format data for display without changing the original data
B. To create new components dynamically
C. To handle user input events
D. To manage application routing
Solution
Step 1: Understand the role of pipes in Angular
Pipes transform data in templates to make it easier to read or display, like formatting dates or numbers.
Step 2: Identify what pipes do not do
Pipes do not create components, handle events, or manage routing; these are handled by other Angular features.
Final Answer:
To format data for display without changing the original data -> Option A
Quick Check:
Purpose of pipes = format data display [OK]
Hint: Pipes format data visually, not logic or structure [OK]
Common Mistakes:
Confusing pipes with event handlers
Thinking pipes create components
Assuming pipes change original data
2. Which of the following is the correct syntax to use a built-in pipe in Angular to format a date in a template?
easy
A. {{ today | date:'shortDate' }}
B. {{ today : date('shortDate') }}
C. {{ date(today, 'shortDate') }}
D. {{ today | formatDate:'shortDate' }}
Solution
Step 1: Recall Angular pipe syntax
Angular pipes use the | symbol followed by the pipe name and optional parameters inside single quotes.
Step 2: Check each option's syntax
{{ today | date:'shortDate' }} correctly uses {{ today | date:'shortDate' }}. Others misuse colon or function call syntax.
Final Answer:
<code>{{ today | date:'shortDate' }}</code> -> Option A
Quick Check:
Pipe syntax = {{ value | pipeName:'param' }} [OK]
Hint: Remember: pipes use | symbol, not colon or function calls [OK]
Common Mistakes:
Using colon instead of pipe symbol
Calling pipes like functions
Misplacing quotes around parameters
3. Given the Angular template code: {{ 1234.5678 | number:'1.2-2' }} What will be the displayed output?
medium
A. 1234.57
B. 1,234.57
C. 1234.5678
D. 1,234.5678
Solution
Step 1: Understand the number pipe format
The format '1.2-2' means minimum 1 digit before decimal, minimum 2 and maximum 2 digits after decimal, with thousands separator.
Step 2: Apply formatting to 1234.5678
The number rounds to two decimals: 1234.57, and adds comma as thousands separator: 1,234.57.
Final Answer:
1,234.57 -> Option B
Quick Check:
Number pipe rounds and adds commas [OK]
Hint: Number pipe adds commas and rounds decimals [OK]
Common Mistakes:
Ignoring thousands separator
Not rounding decimals
Confusing pipe parameter format
4. What is wrong with this Angular template code? {{ user.birthdate | date:shortDate }}
medium
A. The variable name cannot have a dot
B. The pipe symbol should be a colon
C. The pipe parameter should be a string in quotes
D. The date pipe cannot format birthdate
Solution
Step 1: Check pipe parameter syntax
Pipe parameters must be strings in single or double quotes, so shortDate should be 'shortDate'.
Step 2: Verify other parts
The pipe symbol is correct, variable names can have dots for properties, and date pipe can format dates.
Final Answer:
The pipe parameter should be a string in quotes -> Option C
Quick Check:
Pipe parameters need quotes [OK]
Hint: Always quote pipe parameters like 'shortDate' [OK]
Common Mistakes:
Omitting quotes around pipe parameters
Replacing pipe symbol with colon
Misunderstanding variable property access
5. You want to display a user's full name in uppercase and the registration date in a short date format in your Angular template. Which of the following is the correct way to use pipes together?