PathLocationStrategy
此 LocationStrategy
用来配置 Location
服务,以便在浏览器 URL 的 path 中表示其状态。
A LocationStrategy
used to configure the Location
service to represent its state in the path of the browser's URL.
class PathLocationStrategy extends LocationStrategy implements OnDestroy {
ngOnDestroy(): void
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
historyGo(relativePosition: number = 0): void
// 继承自 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
historyGo(relativePosition: number)?: void
abstract onPopState(fn: LocationChangeListener): void
abstract getBaseHref(): string
}
说明
如果你使用 PathLocationStrategy
,则必须提供一个 APP_BASE_HREF
或在文档中添加 <base href>
。
If you're using PathLocationStrategy
, you must provide a APP_BASE_HREF
or add a <base href>
element to the document.
例如,如果你提供的 APP_BASE_HREF
是 '/my/app/'
,并调用 location.go('/foo')
,则浏览器的 URL 将变为 example.com/my/app/foo
。为了确保所有相对 URI 都能正确解析,<base href>
和/或 APP_BASE_HREF
都应该以 /
结尾。
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
. To ensure all relative URIs resolve correctly, the <base href>
and/or APP_BASE_HREF
should end with a /
.
同样,如果将 <base href='/my/app/'/>
添加到文档中并调用 location.go('/foo')
,则浏览器的 URL 将变为 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
.
请注意,使用 PathLocationStrategy
时,如 RFC 所述,查询和 <base href>
的片段部分都不会保留。
Note that when using PathLocationStrategy
, neither the query nor the fragment in the <base href>
will be preserved, as outlined by the RFC.
Further information available in the 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;
}
}