Bird
Raised Fist0
Angularframework~5 mins

*ngIf for conditional rendering in Angular - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the *ngIf directive do in Angular?

*ngIf conditionally adds or removes elements from the DOM based on a true or false expression.

Click to reveal answer
beginner
How do you write *ngIf to show a message only when isLoggedIn is true?
<div *ngIf="isLoggedIn">Welcome back!</div>
Click to reveal answer
beginner
What happens to the element when the *ngIf condition is false?

The element is completely removed from the DOM, not just hidden.

Click to reveal answer
intermediate
How can you provide an else block with *ngIf?

Use *ngIf="condition; else elseBlock" and define a <ng-template #elseBlock> for the else content.

Click to reveal answer
intermediate
Why is *ngIf preferred over CSS display:none for conditional rendering?

Because *ngIf removes elements from the DOM, improving performance and accessibility, while display:none only hides them visually.

Click to reveal answer
What does *ngIf="false" do to the element?
ARemoves it from the DOM
BHides it with CSS
CShows it normally
DThrows an error
How do you add an else block with *ngIf?
A*ngIf="condition" elseBlock
B*ngIfElse="elseBlock"
C*ngIfElseBlock="true"
D*ngIf="condition; else elseBlock" with &lt;ng-template #elseBlock&gt;
Which of these is true about *ngIf?
AIt toggles element visibility with CSS
BIt adds or removes elements from the DOM
CIt only works on <code>&lt;div&gt;</code> elements
DIt requires a function to work
What happens if you use *ngIf on a component?
AThe component is created or destroyed based on the condition
BThe component is always created but hidden
CThe component throws an error
DThe component duplicates
Why might *ngIf improve accessibility?
ABecause it disables keyboard navigation
BBecause it changes font size automatically
CBecause hidden elements are still read by screen readers
DBecause it adds ARIA labels
Explain how *ngIf works for showing or hiding content in Angular.
Think about what happens to the element in the page structure.
You got /3 concepts.
    Describe how to use an else block with *ngIf and why it might be useful.
    Consider how you show something when the condition is false.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the Angular directive *ngIf do in a template?
      easy
      A. It loops over a list and renders each item.
      B. It styles an element dynamically.
      C. It binds a variable to an input field.
      D. It conditionally includes or removes an element from the DOM based on a boolean expression.

      Solution

      1. Step 1: Understand the purpose of *ngIf

        *ngIf is used to conditionally render elements in Angular templates.
      2. Step 2: Identify what *ngIf controls

        It controls whether an element is included or removed from the DOM based on a true or false condition.
      3. Final Answer:

        It conditionally includes or removes an element from the DOM based on a boolean expression. -> Option D
      4. Quick Check:

        *ngIf = conditional rendering [OK]
      Hint: Remember *ngIf shows or hides elements by condition [OK]
      Common Mistakes:
      • Confusing *ngIf with *ngFor for looping
      • Thinking *ngIf changes styles only
      • Assuming *ngIf binds data to inputs
      2. Which of the following is the correct syntax to conditionally display a paragraph only if isVisible is true?
      easy
      A. <p *ngIf="isVisible">Hello</p>
      B. <p ngIf="isVisible">Hello</p>
      C. <p *ngFor="isVisible">Hello</p>
      D. <p *ngShow="isVisible">Hello</p>

      Solution

      1. Step 1: Identify the correct Angular directive syntax

        Angular uses *ngIf with an asterisk to indicate a structural directive.
      2. Step 2: Check the attribute and expression format

        The expression should be inside quotes after *ngIf=, like *ngIf="isVisible".
      3. Final Answer:

        <p *ngIf="isVisible">Hello</p> -> Option A
      4. Quick Check:

        Use *ngIf with asterisk and quotes [OK]
      Hint: Look for *ngIf with asterisk and quotes [OK]
      Common Mistakes:
      • Omitting the asterisk before ngIf
      • Using ngIf without * (like ngIf="isVisible")
      • Confusing *ngIf with *ngFor or *ngShow
      3. Given this Angular template snippet:
      <div *ngIf="showMessage">Welcome!</div>
      <button (click)="showMessage = !showMessage">Toggle</button>

      What happens when the button is clicked twice starting with showMessage = true?
      medium
      A. The message 'Welcome!' disappears after first click and reappears after second click.
      B. The message 'Welcome!' stays visible all the time.
      C. The message 'Welcome!' disappears and never comes back.
      D. The button click causes an error because showMessage is not defined.

      Solution

      1. Step 1: Understand initial state and button action

        Initially, showMessage is true, so the <div> with 'Welcome!' is shown. Clicking the button toggles showMessage between true and false.
      2. Step 2: Trace two clicks

        First click sets showMessage to false, hiding the message. Second click sets it back to true, showing the message again.
      3. Final Answer:

        The message 'Welcome!' disappears after first click and reappears after second click. -> Option A
      4. Quick Check:

        Toggle true/false shows/hides message [OK]
      Hint: Toggle flips boolean, so message appears/disappears alternately [OK]
      Common Mistakes:
      • Assuming message never reappears after hiding
      • Thinking button click causes error
      • Believing message is always visible
      4. Consider this Angular template:
      <div *ngIf="user.isLoggedIn">Hello, {{user.name}}!</div>

      But the app crashes with an error: Cannot read property 'isLoggedIn' of undefined. What is the best fix?
      medium
      A. Remove the *ngIf directive completely.
      B. Change to *ngIf="user?.isLoggedIn" to safely check property.
      C. Initialize user as an empty object in the component.
      D. Use *ngIf="user.isLoggedIn === true" instead.

      Solution

      1. Step 1: Identify cause of error

        The error occurs because user is undefined when Angular tries to read user.isLoggedIn.
      2. Step 2: Use safe navigation operator

        Using user?.isLoggedIn prevents error by checking if user exists before accessing isLoggedIn.
      3. Final Answer:

        Change to *ngIf="user?.isLoggedIn" to safely check property. -> Option B
      4. Quick Check:

        Use ? to avoid errors on undefined objects [OK]
      Hint: Use ?. to safely access nested properties [OK]
      Common Mistakes:
      • Removing *ngIf loses conditional rendering
      • Initializing user empty but not fixing undefined timing
      • Checking equality without safe navigation still errors
      5. You want to display a message only if a user has a non-empty email property and is verified (isVerified true). Which *ngIf expression correctly handles this?
      hard
      A. *ngIf="user.email == '' && user.isVerified"
      B. *ngIf="user.email || user.isVerified"
      C. *ngIf="user.email && user.isVerified"
      D. *ngIf="user.email.length > 0 || user.isVerified"

      Solution

      1. Step 1: Understand the condition requirements

        The message should show only if user.email is not empty (truthy) AND user.isVerified is true.
      2. Step 2: Analyze each option

        *ngIf="user.email && user.isVerified" uses logical AND to require both conditions true. *ngIf="user.email || user.isVerified" uses OR, which is incorrect. *ngIf="user.email == '' && user.isVerified" checks for empty string which is opposite of requirement. *ngIf="user.email.length > 0 || user.isVerified" uses OR and length check but allows message if only one condition is true.
      3. Final Answer:

        *ngIf="user.email && user.isVerified" -> Option C
      4. Quick Check:

        Use AND (&&) to require both conditions true [OK]
      Hint: Use && to require both conditions true [OK]
      Common Mistakes:
      • Using || instead of && allowing partial matches
      • Checking for empty string instead of truthy value
      • Using length without checking for undefined user
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard