Angular2 - 使用skipLocationChange从url获取参数

时间:2017-05-29 05:05:57

标签: angular

我不知道如何在请求(组件)之间传输数据。我需要从任何组件传递错误到ErrorComponent并显示错误消息和http状态代码。 我试试这个:

this.router.navigate(['/error', { error: error }], { skipLocationChange: true });

但我不知道如何从url获取错误参数(错误参数在浏览器中不是)。我知道当skipLocationChange = false时,我在url中看到错误,但我不想看到它。 如何将错误从错误处理程序传输到errorcomponent以显示错误消息?我怎么知道我有哪个http错误代码? 感谢

1 个答案:

答案 0 :(得分:0)

app.routing文件的标准方法

@RouteConfig([
    {path: '/error', component: ErrorComponent,
     as: 'Error', data: {error: '404' // or your component variable the info you get from service}}])

export class ErrorComponent{
    error: string;
    constructor(params: RouteParams, data: RouteData) {
        this.productID = params.get('error');

        console.log('Error is ', data.get('error'));
    }
}

在组件中使用像这样

this.router.navigate(['/a4',{message:"Not Authorised"}]);

并在错误组件中访问类似

的值
this.message = this.route.snapshot.params['message']; //you can even subscribe to the value here to listen for changes