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
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 });
}
}