selectedIndex
@Input()
может изменить индекс вкладки
page1.ts
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from "@angular/router";
@Component({
selector: 'lib-profile-dist-ui',
templateUrl: './profile-dist-ui.component.html',
styleUrls: ['./profile-dist-ui.component.scss']
})
export class ProfileDistUiComponent implements OnInit {
DistributorTitle: string;
activeTab: number = 0
tabIndex = {
"general": 0,
"contact": 1,
"ship_to": 2,
"distributor_br": 3,
"product_assg": 4,
"customer_assg": 5,
"options": 6
}
constructor(
private router: Router,
private route: ActivatedRoute,
) {
}
ngOnInit() {
this.DistributorTitle = "Distributor Details";
this.route.params.subscribe(params => {
if (params['tab']) {
this.activeTab = this.tabIndex[params['tab']]
}
else {
this.activeTab = 0
}
})
}
onBack() {
this.router.navigateByUrl('/distributors');
}
}
и изменить html на
....
<mat-tab-group [selectedIndex]="activeTab">
<mat-tab label="General Info">
....
Вам необходимо добавитьtab
params в route.ts
, если selectedIndex не меняет маршрутизацию с той же страницы, используйте pluck
в rxjs
import 'rxjs/add/operator/pluck';
ngOnInit(){
this.DistributorTitle = "Distributor Details";
this.route.params.pluck('tab').subscribe(param => {
if (param) {
this.activeTab = this.tabIndex[param]
}
else {
this.activeTab = 0
}
}
}
и не забудьте импортировать pluckпервый