在Angular中,当你在一个组件中使用选项卡组件时,切换选项卡时可能无法触发OnChange事件。这是由于选项卡组件本身没有导致表单控件的值发生更改。
要解决这个问题,你需要监听选项卡的选中事件,然后手动更新表单控件的值。以下是一个示例代码片段:
在组件的模板中:
在组件中:
import { Component } from '@angular/core'; import { NgbTabset } from '@ng-bootstrap/ng-bootstrap';
@Component({ selector: 'my-component', templateUrl: './my-component.html' }) export class MyComponent { selectedTabIndex = 0;
onTabChange(tabSet: NgbTabset) { this.selectedTabIndex = tabSet.activeId; // 手动更新表单控件的值 } }
在onTabChange()方法中,我们更新了组件内的选项卡索引,然后手动更新表单控件的值。
请注意,这个解决方法假设你正在使用ng-bootstrap选项卡组件。如果你正在使用其他选项卡组件,可能需要做出适当的调整。