You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular Material Tabs如何实现页面加载后默认显示第一个标签页

Angular Material Tabs 导航标签默认激活首个选项解决方案

问题原因

你当前的默认值设置和激活判断逻辑不匹配:
TS文件中给activeLink设置的初始值为数字0,但模板中[active]绑定的判断条件为activeLink == link,其中link是links数组遍历出来的元素,通常为字符串类型的标签名称,初始值0无法和第一个标签的link值匹配,因此无法触发默认激活状态。

解决方法

直接将activeLink的初始值设置为links数组的第一个元素即可,分两种场景处理:

场景1:links数组为本地静态定义

直接修改TS文件中的初始赋值逻辑:

// 示例静态links数组
public links: string[] = ['首页', '数据', '设置'];
// 初始值直接取数组第一个元素,不要赋值为0
public activeLink = this.links?.length ? this.links[0] : '';

场景2:links数组为异步接口获取

在接口返回数据赋值links后,再给activeLink赋值:

import { OnInit } from '@angular/core';

export class TabsComponent implements OnInit {
  public links: string[] = [];
  public activeLink = '';

  constructor(private yourService: YourService) {}

  ngOnInit() {
    this.yourService.getTabList().subscribe(res => {
      this.links = res;
      // 数据获取完成后赋值默认激活项
      this.activeLink = this.links?.length ? this.links[0] : '';
    })
  }
}

修改完成后页面加载时第一个标签的激活判断会自动命中,无需手动点击即可显示激活状态。


内容的提问来源于stack exchange,提问作者Herge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:09:04