这是我的服务:
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions, URLSearchParams } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { Router} from '@angular/router';
@Injectable()
export class LoginService {
constructor(private http: Http, public router: Router){}
login1( loginParams: any ){
let params = new URLSearchParams();
params.set('login', loginParams.login);
params.set('password', loginParams.password);
let loginUrl = 'api/admins/login';
return this.http
.post(loginUrl, params)
.map(this.extracData)
.catch(this.handleError);
}
....
private extracData( res: Response ){
// console.log(res.json());
let body = res.json();
console.log(body.statusCode);
if (body.statusCode == 404) {
this.router.navigate(['/error', 404]);
// return false;
}
return body || {};
}
private handleError( error: any ){
let errMsg = (error.message)?error.message:
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
console.log(error.status);
return Observable.throw(errMsg);
}
}
那么,当body.statusCode为404时,它无法导航404页面,但是处理handleError函数,所以,我不知道为什么angular2不处理导航功能?
这就是我的错误路线
{
path: 'error/:id',
component: errorComponent
}