Bird
Raised Fist0
Angularframework~5 mins

Template reference variables in Angular - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a template reference variable in Angular?
A template reference variable is a way to access a DOM element or Angular component instance directly in the template. It is declared with a # symbol and can be used to read properties or call methods.
Click to reveal answer
beginner
How do you declare a template reference variable for an input element?
You declare it by adding #variableName inside the input tag, for example: <input #myInput>. This variable can then be used to access the input's value or methods.
Click to reveal answer
intermediate
Can template reference variables access component properties or methods?
Yes, if the variable references a component or directive, you can access its public properties and methods directly in the template using the variable.
Click to reveal answer
intermediate
What is the scope of a template reference variable in Angular?
The scope of a template reference variable is limited to the template where it is declared. It cannot be accessed outside that template or in the component class directly.
Click to reveal answer
beginner
How can you use a template reference variable to get the value of an input on a button click?
You can declare a variable on the input, e.g., <input #myInput>, then use it in a button click event like (click)="alert(myInput.value)" to show the current input value.
Click to reveal answer
How do you declare a template reference variable in Angular?
AUsing # followed by the variable name inside the template
BUsing $ followed by the variable name inside the component class
CUsing @ followed by the variable name in the decorator
DUsing & followed by the variable name in the template
What can a template reference variable NOT do?
AAccess DOM element properties
BCall methods on a referenced component
CBe used inside the same template
DBe accessed in the component's TypeScript class directly
Which of these is a valid use of a template reference variable?
A<input #userInput><button (click)="console.log(userInput.value)">Log</button>
B<input $userInput><button (click)="console.log(userInput.value)">Log</button>
C<input @userInput><button (click)="console.log(userInput.value)">Log</button>
D<input &userInput><button (click)="console.log(userInput.value)">Log</button>
If you have , how do you call a method 'doSomething()' on the child component from the template?
A(click)="doSomething(child)"
B(click)="child.doSomething()"
C(click)="#child.doSomething()"
D(click)="child#doSomething()"
What is the scope of a template reference variable?
AAccessible in the component class and template
BGlobal across the entire Angular app
COnly inside the template where it is declared
DOnly inside the component class
Explain what a template reference variable is and how you use it in Angular templates.
Think about how you can grab an element or component in the template without using code in the class.
You got /4 concepts.
    Describe a practical example where a template reference variable helps in handling user input in Angular.
    Imagine you want to show or use the value typed by the user immediately when they click a button.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the purpose of a template reference variable in Angular templates?
      easy
      A. To create a service for dependency injection
      B. To define a new Angular component
      C. To access a DOM element or component instance directly in the template
      D. To write CSS styles inside the template

      Solution

      1. Step 1: Understand what template reference variables do

        They let you refer to elements or components inside the template without extra code in the component class.
      2. Step 2: Identify the correct purpose

        Accessing DOM elements or component instances directly in the template is exactly what template reference variables do.
      3. Final Answer:

        To access a DOM element or component instance directly in the template -> Option C
      4. Quick Check:

        Template reference variable = direct template access [OK]
      Hint: Remember: #variableName points to element/component [OK]
      Common Mistakes:
      • Confusing template reference variables with component or service creation
      • Thinking they are used for styling or CSS
      • Assuming they are for dependency injection
      2. Which of the following is the correct syntax to declare a template reference variable named inputBox on an <input> element?
      easy
      A.
      B.
      C.
      D.

      Solution

      1. Step 1: Recall Angular template reference variable syntax

        Angular uses the #variableName syntax to declare template reference variables.
      2. Step 2: Match the syntax to the options

        Only uses #inputBox which is correct.
      3. Final Answer:

        <input #inputBox> -> Option A
      4. Quick Check:

        #variableName syntax = correct declaration [OK]
      Hint: Use # before name to declare template reference variable [OK]
      Common Mistakes:
      • Using ref, var, or let which are not Angular template reference syntax
      • Confusing Angular syntax with other frameworks
      • Missing the # symbol
      3. Given the template snippet:
      <input #myInput type="text">
      <button (click)="alert(myInput.value)">Show Value</button>

      What happens when the button is clicked after typing "Hello" in the input?
      medium
      A. An alert box shows the text "Hello"
      B. An alert box shows the text "myInput"
      C. Nothing happens because myInput is undefined
      D. A runtime error occurs

      Solution

      1. Step 1: Understand the template reference variable usage

        The #myInput variable refers to the input element. Accessing myInput.value gets the current text typed.
      2. Step 2: Analyze the button click event

        Clicking the button calls alert(myInput.value), so it shows the input's current value.
      3. Final Answer:

        An alert box shows the text "Hello" -> Option A
      4. Quick Check:

        myInput.value alerts typed text [OK]
      Hint: Template ref variable .value gets input content [OK]
      Common Mistakes:
      • Thinking myInput is a string instead of element reference
      • Assuming myInput is undefined or inaccessible
      • Expecting no action or error on click
      4. Consider this template code:
      <input #userInput type="text">
      <button (click)="logValue()">Log</button>

      And component code:
      logValue() {
        console.log(userInput.value);
      }

      What is the problem here?
      medium
      A. The template reference variable should be declared with $ sign
      B. userInput is not defined in the component class, causing an error
      C. logValue() should be an arrow function
      D. There is no problem; it works fine

      Solution

      1. Step 1: Identify scope of template reference variables

        Template reference variables exist only in the template, not in the component class.
      2. Step 2: Check component method usage

        The method tries to access userInput directly, which is undefined in the class, causing an error.
      3. Final Answer:

        userInput is not defined in the component class, causing an error -> Option B
      4. Quick Check:

        Template refs not accessible in class directly [OK]
      Hint: Template refs only work inside template, not class methods [OK]
      Common Mistakes:
      • Trying to use template refs inside component class directly
      • Thinking template refs need $ or other symbols
      • Assuming arrow functions fix scope issues
      5. How can you use a template reference variable to reset an input field's value to empty when clicking a button?
      <input #myInput type="text">
      <button (click)="???">Reset</button>

      Which is the correct replacement for ????
      hard
      A. this.myInput.value = ''
      B. myInput.reset()
      C. reset(myInput)
      D. myInput.value = ''

      Solution

      1. Step 1: Understand template reference variable usage in event binding

        You can directly access the element via the variable and set its properties in the template expression.
      2. Step 2: Choose the correct syntax to clear input value

        Setting myInput.value = '' clears the input. Using this or calling reset() method is incorrect here.
      3. Final Answer:

        myInput.value = '' -> Option D
      4. Quick Check:

        Directly assign empty string to .value to reset [OK]
      Hint: Assign empty string to .value on template ref to clear input [OK]
      Common Mistakes:
      • Using this.myInput which is undefined in template
      • Calling reset() which input element does not have
      • Trying to call a function reset() without defining it
      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