import { Injectable } from '@angular/core'; import { CanActivate, Router, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router'; import { AnalysisService } from './analysis.service'; import { Observable } from 'rxjs/Observable'; @Injectable() export class AnalysisChartGuardService implements CanActivate { constructor(private analysisServ: AnalysisService, private router: Router) { } canActivate(activateRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) { const analysisId = activateRoute.parent.params.analysisId; return true; } checkChartResult(analysisId: number) { return this.analysisServ.getAnalysis(analysisId).subscribe(result => { if (!result.data.chartSetting.hasOwnProperty('chartType')) { alert('请先配置!'); return false; } return true; }); } }