更改角度组件内的活动引导程序选项卡

jon*_*esy 4 bootstrap-4 angular

嗨,我一直被困在一个看起来像这个简单问题的问题上,来回反复通过SO解决方案似乎并不完全适合我的用例……我有一个角度组件,该模板的模板中包含引导导航药丸,这些是只是用作此特定屏幕中的标签。因此,我有一个“搜索”选项卡和一个“结果”选项卡,执行搜索后,我想激活“结果”选项卡,但无法弄清楚如何从组件中插入引导选项卡。

模板...

<div id="tabs" #tabs>

  <ul class="nav nav-pills">
    <li class="nav-item">
      <a class="nav-link active" href="#search" data-toggle="tab">Search</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" href="#results" data-toggle="tab">Results</a>
    </li>
  </ul>

  <div class="tab-content">
    <div class="tab-pane active" id="search">
      search screen 
      <button type="button" (click)="search()">Search</button>
    </div>
    <div class="tab-pane active" id="results">results screen</div>
  </div>

</div>
Run Code Online (Sandbox Code Playgroud)

然后组件就像..

@Component({
  selector: 'app-demo',
  templateUrl: './demo.component.html'
})
export class DemoComponent implements OnInit {

  @ViewChild('tabs') tabs; 

  search() {
    //perform search. then select the results tab in template.
    //this.tabs.selectedIndex = ...
  }

}
Run Code Online (Sandbox Code Playgroud)

这可能吗?还是我需要使用在组件中配置的其他选项卡。提前谢谢了。

das*_*dsa 10

跟踪哪个选项卡处于活动状态,activeTab并用于ngClass应用.active课程

component.html

<div id="tabs" #tabs>

  <ul class="nav nav-pills">
    <li class="nav-item">
      <a class="nav-link active" href="#search" [ngClass]="{ 'active':activeTab==='search'}" (click)="search('search')"
         data-toggle="tab">Search</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" href="#results" [ngClass]="{ 'active':activeTab==='result'}" data-toggle="tab"
         (click)="result('result')">Results</a>
    </li>
  </ul>

  <div class="tab-content">
    <div class="tab-pane" id="search" [ngClass]="{ 'active':activeTab==='search'}">
      search screen
      <button type="button" (click)="search('result')">Search</button>
    </div>
    <div class="tab-pane" id="results" [ngClass]="{ 'active':activeTab==='result'}">results screen</div>
  </div>

</div>
Run Code Online (Sandbox Code Playgroud)

component.ts

  activeTab = 'search';

  search(activeTab){
    this.activeTab = activeTab;
  }

  result(activeTab){
    this.activeTab = activeTab;
  }
Run Code Online (Sandbox Code Playgroud)