import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from "@angular/Router" import { Injectable,Inject, OnDestroy } from "@angular/core"; import { HttpClient } from "@angular/Common/http"; import { Observable, Subject } from "rxjs"; @Injectable() export class CommonGridResolver implements Resolve,OnDestroy{ private http: HttpClient; constructor(@Inject(HttpClient) _http: HttpClient) { this.http = _http; } private ngUnsubscribe: Subject = new Subject(); ngOnDestroy(): any { this.ngUnsubscribe.next(); this.ngUnsubscribe.complete(); } resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): CommonGridModel | Observable | Promise { console.log(route); var promise = new Promise((fres, rej) => { var path = route.params["category"] var subcat = route.params["subcategory"]; if (subcat != undefined ) { path += "/" + subcat; } this.http.get(`/dyapi/grid/${path}`).takeUntil(this.ngUnsubscribe).subscribe(res => { var mod: CommonGridModel = res; mod.objectName = path.split('/')[0]; fres(mod) //this.grid.initDataSource(); }); }) return promise; } } @Injectable() export class TaskGridResolver implements Resolve, OnDestroy { private http: HttpClient; constructor(@Inject(HttpClient) _http: HttpClient) { this.http = _http; } private ngUnsubscribe: Subject = new Subject(); ngOnDestroy(): any { this.ngUnsubscribe.next(); this.ngUnsubscribe.complete(); } resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): CommonGridModel | Observable | Promise { console.log(route); var promise = new Promise((fres, rej) => { var path = "Task" var subcat = route.params["subcategory"]; if (subcat != undefined) { path += "/" + subcat; } this.http.get(`/dyapi/grid/${path}`).takeUntil(this.ngUnsubscribe).subscribe(res => { var mod: CommonGridModel = res; mod.objectName = path.split('/')[0]; fres(mod) //this.grid.initDataSource(); }); }) return promise; } }