Help Angular by taking a 1 minute survey!Go to surveyHome

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 LocationChangeListener
Returns

void

getBaseHref(): string
      
      getBaseHref(): string
    
Parameters

There are no parameters.

Returns

string

prepareExternalUrl(internal: string): string
      
      prepareExternalUrl(internal: string): string
    
Parameters
internal string
Returns

string

path(includeHash: boolean = false): string
      
      path(includeHash: boolean = false): string
    
Parameters
includeHash 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 any
title string
url string
queryParams string
replaceState(state: any, title: string, url: string, queryParams: string)
      
      replaceState(state: any, title: string, url: string, queryParams: string)
    
Parameters
state any
title string
url string
queryParams 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; } }
      
      
  1. import {Location, LocationStrategy, PathLocationStrategy} from '@angular/common';
  2. import {Component} from '@angular/core';
  3.  
  4. @Component({
  5. selector: 'path-location',
  6. providers: [Location, {provide: LocationStrategy, useClass: PathLocationStrategy}],
  7. template: `
  8. <h1>PathLocationStrategy</h1>
  9. Current URL is: <code>{{location.path()}}</code><br>
  10. Normalize: <code>/foo/bar/</code> is: <code>{{location.normalize('foo/bar')}}</code><br>
  11. `
  12. })
  13. export class PathLocationComponent {
  14. location: Location;
  15. constructor(location: Location) { this.location = location; }
  16. }