gpt4 book ai didi

带有 Material 选项卡的 Angular 8 - 在重新加载时选择最后一个事件选项卡

转载 作者:行者123 更新时间:2023-12-04 16:41:23 25 4
gpt4 key购买 nike

使用以下示例:

Example

重新加载页面时如何激活最后选择的选项卡?是否有这样做的设计模式?

谢谢

最佳答案

这是一个简单、朴素的硬编码版本:

<mat-tab-group [selectedIndex]="1">
<mat-tab label="system" routerLink="syspref"> Default Preferences </mat-tab>
<mat-tab label="user" routerLink="userpref"> User Preferences </mat-tab>
</mat-tab-group>

为了使其更通用,您需要有一些编程方式来了解您有多少个选项卡。例如,如果您从数组构建选项卡。
<mat-tab-group [selectedIndex]="tabs.length - 1">
<mat-tab *ngFor="let tab of tabs" [label]="tab.label" [routerLink]="tab.link">{{tab.name}}</mat-tab>
</mat-tab-group>

其中 tabs 是具有适当属性名称的对象数组。

编辑:

您希望在页面重新加载时保留事件选项卡。

我为此遵循的一般模式是:
  • 在选项卡更改时,将索引添加到查询参数
  • 在页面加载时,在查询参数中查找索引
  • 如果有效,设置事件标签索引

  • 组件
    constructor(private route: ActivatedRoute,
    private router: Router) {}

    selectedTabIndex: number;

    ngOnInit(): void {
    this.selectedTabIndex = parseInt(this.route.snapshot.queryParamMap.get('tab'), 10);
    // TODO: check upper bound. Material will set the last tab as selected
    // if selectedTabIndex >= number of tabs
    if (isNaN(this.selectedTabIndex) || this.selectedTabIndex < 0) {
    this.selectedTabIndex = 0;
    }
    }

    onTabChange(selectedTabIndex: number): void {
    this.router.navigate([], { relativeTo: this.route, queryParams: {
    tab: selectedTabIndex
    }});
    this.selectedTabIndex = selectedTabIndex;
    }

    html
    <mat-tab-group [selectedIndex]="selectedTabIndex" 
    (selectedIndexChange)="onTabChange($event)">
    <mat-tab label="system" routerLink="syspref"> Default Preferences </mat-tab>
    <mat-tab label="user" routerLink="userpref"> User Preferences </mat-tab>
    </mat-tab-group>

    关于带有 Material 选项卡的 Angular 8 - 在重新加载时选择最后一个事件选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60163781/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com