将新数据填充到导入的组件模板中

时间:2018-02-07 12:03:34

标签: javascript html angular typescript

我有Projects Module,其中包含Projects List组件。 Project List组件会显示所有用户所有项目的列表

现在我有Dashboard Module,其中包含User Dashboard个组件。 User Dashboard组件应仅显示该用户的项目列表。

现在,我已导出Project List组件并已将其导入Dashboard Module,并在User Dashboard组件模板中添加了模板选择器。

导出项目列表组件:

 exports: [ProjectListComponent]

在仪表板模块中导入:

import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {DashboardComponent} from './components/dashboard.component';
import {ProjectModule} from "../projects/project.module";

@NgModule({
   imports: [
     CommonModule,
     ProjectModule
 ],
 declarations: [DashboardComponent]
})
export class DashboardModule {
}

添加用户信息中心模板:

<project-list></project-list>

以上工作,它会在project-list组件中显示User Dashboard的模板。

的问题:

是否可以使用新数据填充<project-list></project-list>(即只有用户投影而不是所有用户项目)

这甚至可能吗?我做错了吗?

1 个答案:

答案 0 :(得分:0)

class ProjectList {
    @Input() projectListData;

    constructor(private route: ActivatedRoute) { }

    ngOnInit() {
        this.projectListData = this.projectListData ? this.projectListData : this.route.snapshot.data['projectListData']
    }
}

如果您未将数据传递到输入(<project-list></project-list>),则projectListData将为undefined。因此路由数据被分配给projectListData

否则(<project-list [projectListData]="projectListData"></project-list>),将使用您作为输入传递的数据。

在模板中,

<tr *ngFor="let project of projectListData">
    ...
</tr>