选项卡上的Angular 4 Material Tabs Load

时间:2017-08-31 10:52:35

标签: angular angular-material2

是否可以在Angular Material选项卡上实现延迟加载?否则,我需要一种方法来输入选项卡时运行方法。

4 个答案:

答案 0 :(得分:4)

您可以使用<?php $content = file('test.txt'); echo $content[0]; $file = "test.txt"; $line = 0; $array = file($file); unset($array[$line]); $fp = fopen($file, 'w+'); foreach($array as $line) fwrite($fp,$line); fclose($fp); ?> 提供的selectChange事件。更改选项卡选项时会触发它。来自documentation

  

@Output()selectChange:选项卡选择时发出的事件   改变。

在你的模板中:

<md-tab-group>

...并在你的打字稿代码中:

<md-tab-group (selectChange)="tabSelectionChanged($event)">
  <md-tab label="Tab 1">Content 1</md-tab>
  <md-tab label="Tab 2">
    This tab will load some morecontents after 5 seconds.
    <p>{{ moreContents }}</p>
  </md-tab>
</md-tab-group>

链接到working demo

答案 1 :(得分:3)

我知道问题在于有关角材料5.x.x的问题,但对于那些到达此处但不注意的人,角材料6本机支持延迟加载制表符内容https://material.angular.io/components/tabs/overview#lazy-loading

答案 2 :(得分:2)

根据Angular Material Documentation

延迟加载

默认情况下,选项卡的内容会急切加载。急于加载的选项卡将激活子组件,但在激活该选项卡之前,不会将它们注入DOM。

如果选项卡包含多个复杂的子组件,或者在初始化期间选项卡的内容依赖于DOM计算,则建议延迟加载选项卡的内容。

通过使用 matTabContent 属性在 ng-template 中声明主体,可以延迟加载

Tab内容。

<mat-tab-group>
  <mat-tab label="First">
    <ng-template matTabContent>
      The First Content
    </ng-template>
  </mat-tab>
  <mat-tab label="Second">
    <ng-template matTabContent>
      The Second Content
    </ng-template>
  </mat-tab>
</mat-tab-group>

答案 3 :(得分:1)

正如文件所示

  

虽然<md-tab-group>用于在单个视图中切换视图   route <nav md-tab-nav-bar>提供了一个类似标签的UI用于导航   路线之间。

通过使用此方法,您可以使每个选项卡单独路由,因此每次激活路径时都会加载每个页面。

<nav md-tab-nav-bar>
  <a md-tab-link
     *ngFor="let link of navLinks"
     [routerLink]="link"
     routerLinkActive #rla="routerLinkActive"
     [active]="rla.isActive">
    {{tabLink.label}}
  </a>
</nav>

<router-outlet></router-outlet>

请在标签和导航部分下找到更多信息here