angular - 如何使用 angular4 加载在选项卡中添加的组件?

标签 angular angular2-forms

我正在使用 angular4 和 angular material2。

我有以下代码

<md-tab-group color="primary">
        <md-tab label="Employee">
            <app-employee></app-employee>
        </md-tab>
        <md-tab label="Department">
            <app-department></app-department>
        </md-tab>
        <md-tab label="Attendance">
            <app-attendance></app-attendance>
        </md-tab>
    </md-tab-group>

现在所有组件都已初始加载,但我想在选择相应选项卡时加载特定组件。

最佳答案

注意。 Angular Material 最近已更新,组件已重命名,例如<md-tab>现在是<mat-tab> .文档:https://material.angular.io/components/tabs/api

您想要的是延迟加载 选项卡内容。根据 Angular Material 文档,目前似乎不可能。

这里有一些解决方法:

选项 1. 根据标签组的 selectedIndex 激活子组件属性

<mat-tab-group color="primary" #tabGroup>
  <mat-tab label="Employee">
    <app-employee *ngIf="tabGroup.selectedIndex === 0"></app-employee>
  </mat-tab>
  <mat-tab label="Department" #tabDepartment>
    <app-department *ngIf="tabGroup.selectedIndex === 1"></app-department>
  </mat-tab>
  <mat-tab label="Attendance">
    <app-attendance *ngIf="tabGroup.selectedIndex === 2"></app-attendance>
  </mat-tab>
</mat-tab-group>

选项 2. 收听 selectedIndexChange()选项卡组上的事件

并在此事件的事件处理程序中动态加载一些内容。

类似于:

<mat-tab-group (selectedIndexChange)="loadDynamicContent()">
  <mat-tab>
    {{ dynamicContent }}
  </mat-tab>
</mat-tab-group>

我在这里找到了这个想法:https://stackoverflow.com/a/45980187

关于angular - 如何使用 angular4 加载在选项卡中添加的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46902829/

相关文章:

javascript - 如何根据下拉列表值更改 Angular 2修改输入值

javascript - 如何在没有 ng-model 的情况下以编程方式更改 angular 2 形式的原始属性

angular - 什么 rxjs 运算符类似于 concatmap 但在触发下一个请求之前等待每个请求?

javascript - 无法使用 Ionic 4+ 设置动画启动画面

javascript - Formbuilder setvalue() 在下拉选择中使用时未按预期工作

javascript - 这里的#auto 属性是什么以及为什么需要它

angular - 我如何将一个类导出到模块并在带 Angular typescript 中将其导入另一个模块

angular - 是否有管道操作符会在订阅解析之前运行代码?前 : http call

javascript - ngDestroy 生命周期不在动态创建的 Angular 组件中触发

angular - 以 Angular 更新云Firestore中的特定产品