2017-01-25 4 views
1

Je crée une classe de détermination dans angulaire 2 sur la base Angular2 Docs, voici ma classeerreurs de manipulation dans la détermination classe angular2

//Angular core 
import { Injectable } from '@angular/core'; 
import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot} from '@angular/router'; 
import { Observable } from 'rxjs/Rx'; 
import 'rxjs/add/operator/catch' 
//Service 
import { CategoryService } from '../services/category.services'; 

//Model 
import { Category } from '../model/category.interface'; 

@Injectable() 
export class ListCategoryResolve implements Resolve<Category[]> { 

    constructor(private categoryService: CategoryService, private router: Router) { } 

    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<Category[]> { 

    return this.categoryService.GetAll(); 

    } 
} 

Comment puis-je gérer les erreurs à ce point?, Si par exemple mon service est en baisse

Répondre

0

Vous pouvez attraper l'erreur

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<Category[]> { 

    return this.categoryService.GetAll().catch(err => console.log(err)); 

    } 
0

Dans la méthode de détermination que je dois retourner un

observable
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Category[]> { 
    return this.categoryService.GetAll()  
     .catch(
     (err: Response, caught: Observable<Category[]>) => { 
      if (err !== undefined) { 
      this.router.navigate(["/error",{ outlet: 'error'}]); 
      return Observable.throw('The Web server (running the Web site) is currently unable to handle the HTTP request due to a temporary overloading or maintenance of the server.'); 
      } 
      return Observable.throw(caught); // <----- 
     } 
    )); 
} 
+0

'));' devrait être ');' – fidev