Angular 2 Activatedroute params not working in Service or outside

后端 未结 4 515
甜味超标
甜味超标 2021-02-01 03:36

I have a very strange problem: index.html


4条回答
  •  甜味超标
    2021-02-01 04:37

    Here is an angular service which does that :

    import {Injectable}                                                        from '@angular/core';
    import {ActivatedRoute, NavigationEnd, NavigationExtras, ParamMap, Router} from "@angular/router";
    import {RouterExtensions}                                                  from "nativescript-angular/router";
    import {NavigationOptions}                                                 from "nativescript-angular/router/ns-location-strategy";
    import {Observable}                                                        from "rxjs/Observable";
    import {first}                                                             from "rxjs/operators/first";
    import {filter}                                                            from "rxjs/operators/filter";
    import {map}                                                               from "rxjs/operators/map";
    import {switchMap}                                                         from "rxjs/operators/switchMap";
    import {unRegisterAndroidOnBack}                                           from "../../utils/view.utils";
    
    @Injectable()
    export class RoutingService
        {
            constructor(private routerExtensions: RouterExtensions, private route: ActivatedRoute, private router: Router)
            {
            }
            public getActivatedRouteParameter(paramName: string): Observable
            {
                return this.router.events.pipe(filter(e => e instanceof NavigationEnd),
                                               map((): ActivatedRoute =>
                                                   {
                                                       let route = this.route;
                                                       while (route.firstChild)
                                                           {
                                                               route = route.firstChild;
                                                           }
                                                       return route;
                                                   }),
                                               filter((route: ActivatedRoute) => route.outlet === 'primary'),
                                               switchMap((route: ActivatedRoute) => route.paramMap) , first());
    
            }
    

    .

提交回复
热议问题