Files
Shuaib Hasan Akib 21eed5f8d4 docs: fix self-referential link in defer block description
Replace broken  link with inline code
formatting. The link was pointing to the page itself, as no dedicated block concept page exists at that URL.
corrects 'everytime' to 'every time'.

Update tools/manual_api_docs/blocks/let.md

Co-authored-by: Matthieu Riegler <kyro38@gmail.com>
2026-07-29 09:45:11 -07:00

1.4 KiB

@let allows you to define a local variable and re-use it across the template.

Syntax

@let name = user.name;
@let data = data$ | async;

Description

@let declarations are similar to JavaScript's let and their values can be any valid Angular expression. The expressions will be re-evaluated every time the template is executed.

Similarly to JavaScript variables, variables declared with @let, can be used:

  • After they have been declared
  • Within the bound of the same scope and nested scopes
@let user = user$ | async;

@if (user) {
  <h1>Hello, {{ user.name }}</h1>
  <user-avatar [photo]="user.photo" />

  <ul>
    @for (snack of user.favoriteSnacks; track snack.id) {
      <li>{{ snack.name }}</li>
    }
  </ul>

  <button (click)="update(user)">Update profile</button>
}

Syntax definition

The @let syntax is formally defined as:

  • The @let keyword.
  • Followed by one or more whitespaces, not including new lines.
  • Followed by a valid JavaScript name and zero or more whitespaces.
  • Followed by the = symbol and zero or more whitespaces.
  • Followed by an Angular expression which can be multi-line.
  • Terminated by the ; symbol.

HELPFUL: A comprehensive description of the feature is available on the templates guide