如果今天没有解决方案,我可以提供一些基于猴子修补的技巧:
模板.html
<mat-tab-group #tabs>
...
</mat-tab-group>
组件.ts
import { MatTabGroup, MatTabHeader, MatTab } from '@angular/material';
...
@Component({...})
export class AppComponent implement OnInit {
@ViewChild('tabs') tabs: MatTabGroup;
ngOnInit() {
this.tabs._handleClick = this.interceptTabChange.bind(this);
}
interceptTabChange(tab: MatTab, tabHeader: MatTabHeader, idx: number) {
const result = confirm(`Do you really want to leave the tab ${idx}?`);
return result && MatTabGroup.prototype._handleClick.apply(this.tabs, arguments);
}
}
Ng-run Example