typescript – Angular 2中的RouteData可以将变量传递给父组件的路由组件吗?

我想使用RouteConfig将变量从我的AppComponent传递给Coursescomponent,但是route config中的“data”属性只能传递常量参数,并且它无法识别“this”.有没有办法做到这一点?

如果不是,将变量传递给路由组件的最佳做法是什么?

@Component({
    selector: 'app',template: `
    <router-outlet></router-outlet>
    `,directives: [ROUTER_DIRECTIVES],})

@RouteConfig([
    { path: '/courses',name: 'Courses',component: CoursesComponent,data:{token:this.token}}  // this doesn't work -- cannot read property "token" of undefined

])

export class AppComponent  {
    token:string;
//I would change the token(string) in this component,and I want to pass this to the routed components

}

解决方法

您可以使用共享服务在组件之间共享值.

有关如何实现共享服务的更多详细信息,请参见Global Events in Angular 2.

或者,您可以注入Router调用其中一个router.navigateXxx()函数,您可以在其中传递其他数据.

相关文章

AngularJS 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...