1 | ## Resolver example
|
2 | ``` typescript
|
3 | export interface IAboutState {
|
4 | text: string;
|
5 | name: string;
|
6 | }
|
7 | ```
|
8 |
|
9 | ``` typescript
|
10 | @Injectable()
|
11 | export class AboutResolverService extends StateResolver<IAboutState> {
|
12 | constructor(protected stateManager: StateManagerService<IAboutState>) {
|
13 | super(stateManager);
|
14 | }
|
15 | nextState(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Partial<IAboutState> {
|
16 | return {
|
17 | text: 'Helo',
|
18 | name: Observable.of('Alexander')
|
19 | }
|
20 | }
|
21 | }
|
22 |
|
23 | ```
|
24 |
|
25 | ``` typescript
|
26 | RouterModule.forChild([{
|
27 | path: '',
|
28 | component: AboutComponent,
|
29 | resolve: {
|
30 | state: AboutResolverService
|
31 | }
|
32 | }])
|
33 | ```
|
34 |
|
35 |
|
36 | ``` typescript
|
37 | export class AboutComponent implements OnInit {
|
38 |
|
39 |
|
40 | constructor(private state: StateManagerService<IAboutState>) {
|
41 |
|
42 | }
|
43 | text$:Observable<string> = this.state.chain().safeGet('text').asObservable();
|
44 | name$:Observable<string> = this.state.chain().safeGet('name').asObservable();
|
45 |
|
46 | ngOnInit() {
|
47 | }
|
48 |
|
49 | }
|
50 | ``` |
\ | No newline at end of file |