【问题标题】:Angular Dynamic Mat Tab - How to add newly created tab as the first tabAngular Dynamic Mat 选项卡 - 如何将新创建的选项卡添加为第一个选项卡
【发布时间】:2020-11-16 06:02:19
【问题描述】:

我正在使用 Mat-tab 创建一个动态选项卡。新选项卡已创建并且工作正常。但我的要求是将新创建的选项卡显示为第一个选项卡。如何将新创建的选项卡插入到第一个。任何人请帮忙。提前谢谢...

这里是stackblitz链接

https://stackblitz.com/angular/epealnoxvlg?file=app%2Ftab-group-dynamic-example.ts

【问题讨论】:

    标签: angular angular-material


    【解决方案1】:

    如果您在选项卡 0 中并添加一个新选项卡 - “选定的选项卡未更改”,则会出现问题,因此您可以编写考虑到这一点

    addTab(selectAfterAdding: boolean) {
        this.tabs.unshift('New');
    
        if (selectAfterAdding) {
          if (this.selected.value==0)  //if is yet "0"
            this.selected.setValue(1)
          setTimeout(()=>{
            this.selected.setValue(0);
          })
        }
     }
    

    【讨论】:

    • Eliseo,感谢您的回复...您的代码完美地创建了新标签,但创建的标签不活跃...。请您在 stackblitz 链接中再次检查您的代码...
    • 我刚刚分叉了你的 stackblitz 更改了 stackblitz.com/edit/angular-1lz2uy?file=app/… 中的函数 addTab 并为我工作:(
    • 非常感谢 Eliseo...它运行良好...
    【解决方案2】:

    你应该做的是谷歌

    js 数组插入到数组的开头

    您可以使用this.tabs.unshift('New'); 代替this.tabs.push('New');

    【讨论】:

    • 非常感谢Canbax...此代码正在创建选项卡作为第一个选项卡,但默认未选中新添加的选项卡...请您帮忙...
    • 我认为将this.selected.setValue(this.tabs.length - 1); 更改为this.selected.setValue(0); 应该可以,但它不起作用。这可能是角度逻辑的问题
    • 非常感谢 Canbax 的回复...有人遇到过这个问题吗?...请帮助...
    猜你喜欢
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 2021-06-22
    • 2021-06-03
    相关资源
    最近更新 更多