Skip to content

API Reference


API Reference / @dasch-ng/route-signals / bindQuerySignal

Function: bindQuerySignal() ​

bindQuerySignal<T>(options): void

Defined in: bind-query-signal.ts:56

Links a writable signal to a URL query parameter.

  • On creation, the signal is set once from the current route snapshot. This is a plain set(), so opening a deep link never triggers a navigation.
  • Later signal changes are written to the URL with router.navigate([], { replaceUrl: true, queryParamsHandling: 'merge' }), debounced by 50 ms.
  • No navigation happens when the URL already holds the serialized value, or while another navigation is in flight, so the binding never cancels a navigation started elsewhere.

The URL is only read on creation. To follow later URL changes (back/forward), read the parameter with routeQueryParam as well.

Must be called in an injection context, for example a component field initializer or constructor.

Type Parameters ​

T ​

T

Parameters ​

options ​

BindQuerySignalOptions<T>

Returns ​

void

Example ​

typescript
export class AssetListComponent {
  readonly search = signal('');
  readonly page = signal(1);

  constructor() {
    bindQuerySignal({ signal: this.search, param: 'q', defaultValue: '' });
    bindQuerySignal({ signal: this.page, param: 'page', defaultValue: 1, deserialize: Number });
  }
}

Released under the MIT License.