私はtwitterブートストラップタブを使用しています。ユーザーが別のタブを切り替えるときにli
タグに適用されるactive
クラスを追跡したいと思います。クラス属性をコードからactivate
に変更して、自分のカスタムボタンを使ってタブをアクティブにしたいので、クラス属性を追跡しています。Angular2 - クラス属性の双方向データバインディング
import {Component} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
@Component({
selector: 'app',
template: `
<div class="container-fluid" >
<ul class="nav nav-tabs" >
<li *ngFor="#tab of tabs" [(class)]="tab.class" ><a href="#{{tab.id}}" data-toggle="tab" >{{tab.id}}</a></li>
</ul>
<div class="tab-content">
<div *ngFor="#tab of tabs" [(class)]="tab.contentClass" [id]="tab.id" >{{tab.id}} content goes here.</div>
</div>
</div>
<button (click)="openTab('tab1')" >Tab 1 Button</button>
<button (click)="openTab('tab2')" >Tab 2 Button</button>
`
})
class MainApp{
public tabs = [
{class: "active", id: "tab1", contentClass:"tab-pane active"},
{class: "", id: "tab2", contentClass:"tab-pane"}
]
openTab(id){
var tabToActivate;
for(var i=0;i<this.tabs.length;i++){
if(this.tabs[i].id == id)
tabToActivate = this.tabs[i];
this.tabs[i].class = "";
this.tabs[i].contentClass = "tab-pane";
}
tabToActivate.class = "active";
tabToActivate.contentClass = "tab-pane active";
}
}
bootstrap(MainApp);
を私が別のタブを切り替えると結合が一瞬のために動作しないものとカスタマイズされたタブボタンまたはを破る取得するようだ:私はこれを達成するために、次のコードを使用しています。なぜこうなった?
クリック
tab2
クリック
Tab Button 1
の再生産の問題 - 動作しません。
それは働いてくれてありがとう。私がしなければならなかったのは、 '(クリック)=" openTab(tab.id) "'を 'li'タグに追加することでした。 – essaji
うれしいです。あなたは@essajiを歓迎しています... – micronyks