Url

Reactive wrapper around Angular Router's current URL. Access the full URL as a signal.

Usage

angular-ts
import { Component } from '@angular/core';
import { url } from '@signality/core';

@Component({
  template: `
    <p>Current URL: {{ currentUrl() }}</p>
  `,
})
export class SharePage {
  readonly currentUrl = url(); 
}

Parameters

ParameterTypeDescription
optionsUrlOptionsOptional configuration (see Options below)

Options

The UrlOptions extends CreateSignalOptions<string> and WithInjector:

OptionTypeDefaultDescription
absolutebooleanfalseInclude origin (protocol + host)
equalValueEqualityFn<string>-Custom equality function (see more)
debugNamestring-Debug name for the signal
injectorInjector-Optional injector for DI context

Return Value

Returns a Signal<string> containing the current URL.

Examples

Analytics tracking

angular-ts
import { Component, effect, inject } from '@angular/core';
import { url } from '@signality/core';
import { AnalyticsService } from './analytics.service';

@Component({ /* ... */ })
export class App {
  readonly analytics = inject(AnalyticsService);
  readonly currentUrl = url();
  
  constructor() {
    effect(() => {
      this.analytics.trackPageView(this.currentUrl()); 
    });
  }
}

Social share

angular-ts
import { Component, computed } from '@angular/core';
import { url } from '@signality/core';

@Component({
  template: `
    <div class="share-buttons">
      <a [href]="xUrl()" target="_blank">Share on X</a>
    </div>
  `,
})
export class ShareButtons {
  readonly currentUrl = url({ absolute: true });
  
  readonly xUrl = computed(() => 
    `https://x.com/intent/tweet?url=${encodeURIComponent(this.currentUrl())}`
  );
}

SSR Compatibility

On the server, the signal initializes with the current URL from the router's url property.

Type Definitions

typescript
interface UrlOptions extends CreateSignalOptions<string>, WithInjector {
  readonly absolute?: boolean;
}

function url(options?: UrlOptions): Signal<string>;
Edit this page on GitHub Last updated: Mar 19, 2026, 23:28:23