我正在从事angular2项目,在该项目中,我使用ROUTER_DIRECTIVES从一个组件导航到另一个组件.

有两个组件.i、 e.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
}

到目前为止,它正确地路由到designer,但当我试图在designer中访问page个对象时,它显示的是undefined.

推荐答案

不能使用路由参数传递对象,只能传递字符串,因为它需要反映在URL中.无论如何,使用共享服务在路由组件之间传递数据可能是更好的方法.

旧的路由允许通过data,但新的(RC.1)路由尚未通过.

Update

dataRC.4How do I pass data in Angular 2 components while using Routing?年重新引入

Typescript相关问答推荐

如何获取数组所有可能的索引作为数字联合类型?

在TypeScript中使用泛型的灵活返回值类型

我应该使用什么类型的React表单onsubmit事件?

在配置对象上映射时,类型脚本不正确地推断函数参数

具有继承的基于类的react 组件:呈现不能分配给基类型中的相同属性

在映射类型中用作索引时,TypeScrip泛型类型参数无法正常工作

通配符路径与每条路径一起显示

适当限制泛型函数中的记录

Angular 15使用react 式表单在数组内部创建动态表单数组

如何使所有可选字段在打印脚本中都是必填字段,但不能多或少?

尽管对象的类型已声明,但未解析的变量<;变量

类型脚本可以推断哪个类型作为参数传递到联合类型中吗?

保护函数调用,以便深度嵌套的对象具有必须与同级属性函数cargument的类型匹配的键

如何将类似数组的对象(字符串::匹配结果)转换为类型脚本中的数组?

为什么TS2339;TS2339;TS2339:类型A上不存在属性a?

如何正确键入泛型相对记录值类型?

通过辅助函数获取嵌套属性时保留类型

覆盖高阶组件中的 prop 时的泛型推理

为什么 TypeScript 类型条件会影响其分支的结果?

React-Router V6 中的递归好友路由