md-tabs使用代码转到角度2材质设计中的选项卡

时间:2017-03-01 18:28:18

标签: angular typescript angular-material

我正在使用Angular2创建一个应用程序,我需要使用选项卡内的按钮在标签之间导航。

我的html如下:

<md-tab-group>
<md-tab label="one">
   <button md-raised-button>Navigate to Two</button>
   <button md-raised-button>Navigate to Three</button>
</md-tab label>
<md-tab label="two">
</md-tab label>
<md-tab label="three"> 
</md-tab label>
</md-tab-group>

所以,当我点击导航到三时,它应该带我到标签名称三

我正在使用Angular2材质设计这个例子可以有人知道解决这个问题。

提前致谢

2 个答案:

答案 0 :(得分:15)

这可以使用 selectedIndex 输入变量使用以下代码

来实现
<md-tab-group [selectedIndex]="selectedIndex">
  <md-tab label="Tab 1">Content 1 
  <button (click)="clickMe()"> click me to go to tab 2 </button>
  </md-tab>
  <md-tab label="Tab 2">Content 2</md-tab>
</md-tab-group>

,你的打字稿代码将是

@Component({
  selector: 'tabs-sample',
  templateUrl: './tabsSample.html',
})
export class TabsSample {
  selectedIndex:number=0;
  clickMe(){
    this.selectedIndex=1;
  }

}

更新1:根据评论。

您可以使用 selectedIndexChange 方法修复该错误,如下所示

<md-tab-group  (selectedIndexChange)="selectedIndexChange($event)" 
               [selectedIndex]="selectedIndex">

</md-tab-group>

您的代码将

selectedIndexChange(val :number ){
    this.selectedIndex=val;
  }

也在插件中更新。

<强> LIVE DEMO

答案 1 :(得分:2)

您想使用Angular Router

试试这个:

您的HTML

<md-tab-group>
<md-tab label="one">
   <button md-raised-button (click)="goToTwo()">Navigate to Two</button>
   <button md-raised-button (click)="goToThree()">Navigate to Three</button>
</md-tab label>
</md-tab-group>
<router-outlet></router-outlet>

在您的组件类

constructor(private router: Router) {}

goToTwo() {
  this.router.navigate(['two'])
}

goToThree(){
  this.router.navigate(['three'])
}

不要忘记在组件中导入路由器

import { Router } from '@angular/router';

模块中的

import { RouterModule, Routes } from '@angular/router';
export const appRoutes: Routes = [
  { path: '',
    redirectTo: '/two',
    pathMatch: 'full'
  },
  { path: 'two', component: TwoComponent,
  },
  { path: 'three', component: ThreeComponent }
];
...

imports: [
  ...,
  RouterModule.forRoot(appRoutes)
],

当然会创建TwoComponentThreeComponent

希望这有帮助!