【发布时间】:2016-09-06 13:43:02
【问题描述】:
我正在处理这个 angular2 项目,我在其中使用 ROUTER_DIRECTIVES 从一个组件导航到另一个组件。
有 2 个组件。即PagesComponent & DesignerComponent。
我想从 PagesComponent 导航到 DesignerComponent。
到目前为止,它的路由正确,但我需要传递 page 对象,以便设计人员可以自行加载该页面对象。
我尝试使用 RouteParams 但它正在获取页面对象undefined。
下面是我的代码:
pages.component.ts
import {Component, OnInit ,Input} from 'angular2/core';
import { GlobalObjectsService} from './../../shared/services/global/global.objects.service';
import { ROUTER_DIRECTIVES, RouteConfig } from 'angular2/router';
import { DesignerComponent } from './../../designer/designer.component';
import {RouteParams} from 'angular2/router';
@Component({
selector: 'pages',
directives:[ROUTER_DIRECTIVES,],
templateUrl: 'app/project-manager/pages/pages.component.html'
})
@RouteConfig([
{ path: '/',name: 'Designer',component: DesignerComponent }
])
export class PagesComponent implements OnInit {
@Input() pages:any;
public selectedWorkspace:any;
constructor(private globalObjectsService:GlobalObjectsService) {
this.selectedWorkspace=this.globalObjectsService.selectedWorkspace;
}
ngOnInit() { }
}
在 html 中,我正在执行以下操作:
<scrollable height="300" class="list-group" style="overflow-y: auto; width: auto; height: 200px;" *ngFor="#page of pages">
{{page.name}}<a [routerLink]="['Designer',{page: page}]" title="Page Designer"><i class="fa fa-edit"></i></a>
</scrollable>
在 DesignerComponent 构造函数中,我做了以下操作:
constructor(params: RouteParams) {
this.page = params.get('page');
console.log(this.page);//undefined
}
到目前为止,它已正确路由到设计器,但是当我尝试在设计器中访问 page 对象时,它会显示 undefined。
有什么解决办法吗?
【问题讨论】:
-
ROUTER_DIRECTIVES听起来你使用的是黑暗时代的 Angular 版本;-) -
你也可以召唤这种“撒旦噱头”:导航前
this.router['arbitraryData'] = data,最后导航目标let arbitraryData = this.router['arbitraryData']。我会把这个留在这里,以防我忘记并最终再次找到这个页面,以防万一
标签: javascript typescript angular angular2-routing