This is the archived documentation for Angular v6. Please visit angular.io to see documentation for the current version of Angular.

PathLocationStrategy

A LocationStrategy used to configure the Location service to represent its state in the path of the browser's URL.

See more...

class PathLocationStrategy extends LocationStrategy { onPopState(fn: LocationChangeListener): void getBaseHref(): string prepareExternalUrl(internal: string): string path(includeHash: boolean = false): string pushState(state: any, title: string, url: string, queryParams: string) replaceState(state: any, title: string, url: string, queryParams: string) forward(): void back(): void // inherited from common/LocationStrategy abstract path(includeHash?: boolean): string abstract prepareExternalUrl(internal: string): string abstract pushState(state: any, title: string, url: string, queryParams: string): void abstract replaceState(state: any, title: string, url: string, queryParams: string): void abstract forward(): void abstract back(): void abstract onPopState(fn: LocationChangeListener): void abstract getBaseHref(): string }
      
      class PathLocationStrategy extends LocationStrategy {
  onPopState(fn: LocationChangeListener): void
  getBaseHref(): string
  prepareExternalUrl(internal: string): string
  path(includeHash: boolean = false): string
  pushState(state: any, title: string, url: string, queryParams: string)
  replaceState(state: any, title: string, url: string, queryParams: string)
  forward(): void
  back(): void

  // inherited from common/LocationStrategy
  abstract path(includeHash?: boolean): string
  abstract prepareExternalUrl(internal: string): string
  abstract pushState(state: any, title: string, url: string, queryParams: string): void
  abstract replaceState(state: any, title: string, url: string, queryParams: string): void
  abstract forward(): void
  abstract back(): void
  abstract onPopState(fn: LocationChangeListener): void
  abstract getBaseHref(): string
}
    

Description

If you're using PathLocationStrategy, you must provide a APP_BASE_HREF or add a base element to the document. This URL prefix that will be preserved when generating and recognizing URLs.

For instance, if you provide an APP_BASE_HREF of '/my/app' and call location.go('/foo'), the browser's URL will become example.com/my/app/foo.

Similarly, if you add <base href='/my/app'/> to the document and call location.go('/foo'), the browser's URL will become example.com/my/app/foo.

Methods

onPopState(fn: LocationChangeListener): void
      
      onPopState(fn: LocationChangeListener): void
    

Parameters

fn

Type: LocationChangeListener.

Returns

void

getBaseHref(): string
      
      getBaseHref(): string
    

Parameters

There are no parameters.

Returns

string

prepareExternalUrl(internal: string): string
      
      prepareExternalUrl(internal: string): string
    

Parameters

internal

Type: string.

Returns

string

path(includeHash: boolean = false): string
      
      path(includeHash: boolean = false): string
    

Parameters

includeHash

Type: boolean.

Optional. Default is false.

Returns

string

pushState(state: any, title: string, url: string, queryParams: string)
      
      pushState(state: any, title: string, url: string, queryParams: string)
    

Parameters

state

Type: any.

title

Type: string.

url

Type: string.

queryParams

Type: string.

replaceState(state: any, title: string, url: string, queryParams: string)
      
      replaceState(state: any, title: string, url: string, queryParams: string)
    

Parameters

state

Type: any.

title

Type: string.

url

Type: string.

queryParams

Type: string.

forward(): void
      
      forward(): void
    

Parameters

There are no parameters.

Returns

void

back(): void
      
      back(): void
    

Parameters

There are no parameters.

Returns

void

Usage notes

Example

import {Location, LocationStrategy, PathLocationStrategy} from '@angular/common'; import {Component} from '@angular/core'; @Component({ selector: 'path-location', providers: [Location, {provide: LocationStrategy, useClass: PathLocationStrategy}], template: ` <h1>PathLocationStrategy</h1> Current URL is: <code>{{location.path()}}</code><br> Normalize: <code>/foo/bar/</code> is: <code>{{location.normalize('foo/bar')}}</code><br> ` }) export class PathLocationComponent { location: Location; constructor(location: Location) { this.location = location; } }
      
      import {Location, LocationStrategy, PathLocationStrategy} from '@angular/common';
import {Component} from '@angular/core';

@Component({
  selector: 'path-location',
  providers: [Location, {provide: LocationStrategy, useClass: PathLocationStrategy}],
  template: `
    <h1>PathLocationStrategy</h1>
    Current URL is: <code>{{location.path()}}</code><br>
    Normalize: <code>/foo/bar/</code> is: <code>{{location.normalize('foo/bar')}}</code><br>
  `
})
export class PathLocationComponent {
  location: Location;
  constructor(location: Location) { this.location = location; }
}