是否可以在Angular Material选项卡上实现延迟加载?否则,我需要一种方法来输入选项卡时运行方法。
答案 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。