【发布时间】:2018-07-12 22:57:09
【问题描述】:
我的路由器模块 /dashboard 中有一条路由。在这条路线中,我有多个组件,包括一个父组件和几个子组件。我使用 @Input 装饰器将数据(tablesPanorama(对象数组))从名为 TischplanComponent (tischplan.component.ts) 的父组件传递到名为 DepartmentsComponent (departments.component.ts) 的子组件。
app.module.ts
const appRoutes: Routes = [
{path: '', component: LoginComponent},
{path: 'login', component: LoginComponent},
{path: 'dashboard', component: TischplanComponent, canActivate: [AuthGuard]},
{path: 'register', component: RegisterComponent},
{path: 'profile', component: ProfileComponent, canActivate: [AuthGuard]}
];
导入:[RouterModule.forRoot(appRoutes)]
app-component-html
这是路由器插座所在的位置
<router-outlet></router-outlet>
tischplan.component.html
<app-departments [tablesPanorama]="tablesPanorama"</app-departments>
departments.component.ts
@Input('tablesPanorama') tablesPanorama: Table[];
不幸的是,数据没有传递给子组件。是什么导致了这个问题?如果我在构造函数中 console.log this.tablesPanorama 我得到未定义:
constructor(private tischplanService: TischplanService) {
console.log("this.tablesPanorama:");
console.log(this.tablesPanorama);
}
@Input和<router-outlet>之间的连接:
据我了解我的代码,@Input 位于名为 DepartmentComponent 的子组件中,它从父组件 TischplanComponent 传递变量 tablesPanorama,它是 <router-outlet> 中 /dashboard 路由的组件,它位于在 app.component.ts 中。
【问题讨论】:
-
你到底想做什么,将数据传递给另一个组件,或者你想导航到另一个组件
-
我只想将 data 传递给另一个组件
-
只需在组件中导入该组件,然后在构造函数中创建它的对象,然后使用该对象将数据传递给该组件
-
谢谢。让我试试看。
-
@Input()在路由器添加的组件上不受支持。目前尚不清楚@Input()和<router-outlet>在您的问题中有何关联。
标签: angular typescript routes components