Angular
Angular

What is LinkedSignal for Bidirectional Reactivity?

March 18, 2026

LinkedSignal is an advanced Angular signal primitive that creates writable signals intrinsically linked to source signals. Unlike computed() (read-only), LinkedSignal allows direct .set() and .update() while automatically maintaining valid values based on its source signals when they change.

Code Example:-

Code

import { Component, signal, linkedSignal } from '@angular/core';

@Component({
  template: `
    <select [value]="selectedOption()?.name" (change)="changeOption($event)">
      @for (opt of options(); track opt.id) {
        <option [value]="opt.name">{{ opt.name }}</option>
      }
    </select>
    <p>Selected: {{ selectedOption()?.name }}</p>
  `
})
export class ShippingSelector {
  options = signal([
    { id: 0, name: 'Ground' },
    { id: 1, name: 'Air' },
    { id: 2, name: 'Sea' }
  ]);

  // LinkedSignal auto-resets to first valid option if source changes
  selectedOption = linkedSignal({
    source: this.options,
    computation: (options, previous) => {
      // Preserve previous selection if still valid
      return options.find(opt => opt.id === previous?.id) || options[0];
    }
  });

  changeOption(event: Event) {
    const name = (event.target as HTMLSelectElement).value;
    this.selectedOption.set(this.options().find(opt => opt.name === name)!);
  }
}
      
Hire Now!

Need Help with Angular Development ?

Ready to leverage the power of conversational AI? Start your project with Zignuts expert AI developers.
bg-image
download-image
Company Deck
PDF, 3MB
© 2026 Zignuts Technolab. All Rights Reserved.
branch imagesbranch imagesbranch imagesbranch imagesbranch imagesbranch images