Я отображаю несколько вкладок с циклом ngFor, используя вкладки Angular Material. Это работает правильно, однако теперь я хотел бы открыть вторую вкладку при инициализации, а не первую вкладку. Поэтому я добавляю свойство selectedIndex в группу mat-tab-group, но оно не работает и продолжает открываться на первой вкладке.
HTML
<mat-tab-group class="col-10 offset-1" (selectedTabChange)="onTabChanged($event)" [selectedIndex]="1">
<mat-tab label={{tab.name}} *ngFor="let tab of tabs; let index = index">
<div>
Values: {{tab.values}}
</div>
</mat-tab>
</mat-tab-group>
Переменная "tabs" извлекается службой с сервера в ngOnInit следующим образом:
КОМПОНЕНТ
this.api.getDataset(this.route.snapshot.params["experimentid"]).subscribe(
res => {
this.tabs = res;
},
err => {
console.log(err);
}
);
Я думаю, что это происходит отсюда, потому что, если я устанавливаю вкладки вручную, не запрашивая сервер, он работает. Нравится:
this.tabs = [{name: "X2", values: "52"}, {name: "Z2", values: "52"}, {name: "R2", values: "52"}]
*ngIf="tabs && tabs.length"
в свойmat-tab-group
компонент. См. Также пример ng-run.com/edit/OxHxsmOQUgfxuH0grSra. - person yurzui   schedule 14.07.2018