好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

angular-ui-bootstrap插件API - Tabs

案例

 <!  DOCTYPE html  > 
 <  html   lang  ="en"   ng-app  ="myApp"  > 
 <  head  > 
     <  meta   charset  ="UTF-8"  > 
     <  title  > Title </  title  > 
     <  link   rel  ="stylesheet"   href  ='node_modules/bootstrap/dist/css/bootstrap.css'  > 
     <  link   rel  ="stylesheet"   href  ='node_modules/angular-ui-bootstrap/dist/ui-bootstrap-csp.css'  > 
     <  script   src  ="node_modules/angular/angular.min.js"  ></  script  > 
     <  script   src  ="node_modules/angular-ui-bootstrap/dist/ui-bootstrap-tpls.js"  ></  script  > 
     <  style   type  ="text/css"  >  
        form.tab-form-demo .tab-pane   {  
            margin  :   20px 20px  ; 
         } 
     </  style  > 
     <  script  >  
        angular.module(  '  myApp  '  ,[  '  ui.bootstrap  '  ])
            .controller(  '  TabsDemoCtrl  '  ,   function   ($scope, uibDateParser) {
                $scope.tabs   =   [
                    { title:  '  Dynamic Title 1  '  , content:  '  Dynamic content 1  '   },
                    { title:  '  Dynamic Title 2  '  , content:  '  Dynamic content 2  '  , disabled:   true   }
                ];

                $scope.alertMe   =   function  () {
                    setTimeout(  function  () {
                        $window.alert(  '  You\'ve selected the alert tab!  '  );
                    });
                };

                $scope.model   =   {
                    name:   '  Tabs  '  
                };
            });
      </  script  > 
 </  head  > 
 <  body  > 
 <  div   ng-controller  ="TabsDemoCtrl"  > 
     <  p  > Select a tab by setting active binding to true: </  p  > 
     <  p  > 
         <  button   type  ="button"   class  ="btn btn-default btn-sm"   ng-click  ="active = 1"  > Select second tab </  button  > 
         <  button   type  ="button"   class  ="btn btn-default btn-sm"   ng-click  ="active = 2"  > Select third tab </  button  > 
     </  p  > 
     <  p  > 
         <  button   type  ="button"   class  ="btn btn-default btn-sm"   ng-click  ="tabs[1].disabled = ! tabs[1].disabled"  > Enable / Disable third tab </  button  > 
     </  p  > 
     <  hr   /> 

     <  uib-tabset   active  ="active"  > 
         <  uib-tab   index  ="0"   heading  ="Static title"  > Static content </  uib-tab  > 
         <  uib-tab   index  ="$index + 1"   ng-repeat  ="tab in tabs"   heading  ="{{tab.title}}"   disable  ="tab.disabled"  >  
            {{tab.content}}
          </  uib-tab  > 
         <  uib-tab   index  ="3"   select  ="alertMe()"  > 
             <  uib-tab-heading  > 
                 <  i   class  ="glyphicon glyphicon-bell"  ></  i  >   Alert!
              </  uib-tab-heading  >  
            I've got an HTML heading, and a select callback. Pretty cool!
          </  uib-tab  > 
     </  uib-tabset  > 

     <  hr   /> 

     <  uib-tabset   active  ="activePill"   vertical  ="true"   type  ="pills"  > 
         <  uib-tab   index  ="0"   heading  ="Vertical 1"  > Vertical content 1 </  uib-tab  > 
         <  uib-tab   index  ="1"   heading  ="Vertical 2"  > Vertical content 2 </  uib-tab  > 
     </  uib-tabset  > 

     <  hr   /> 

     <  uib-tabset   active  ="activeJustified"   justified  ="true"  > 
         <  uib-tab   index  ="0"   heading  ="Justified"  > Justified content </  uib-tab  > 
         <  uib-tab   index  ="1"   heading  ="SJ"  > Short Labeled Justified content </  uib-tab  > 
         <  uib-tab   index  ="2"   heading  ="Long Justified"  > Long Labeled Justified content </  uib-tab  > 
     </  uib-tabset  > 

     <  hr   />  

    Tabbed pills with CSS classes
      <  uib-tabset   type  ="pills"  > 
         <  uib-tab   heading  ="Default Size"  > Tab 1 content </  uib-tab  > 
         <  uib-tab   heading  ="Small Button"   classes  ="btn-sm"  > Tab 2 content </  uib-tab  > 
     </  uib-tabset  > 

     <  hr   />  

    Tabs using nested forms:
      <  form   name  ="outerForm"   class  ="tab-form-demo"  > 
         <  uib-tabset   active  ="activeForm"  > 
             <  uib-tab   index  ="0"   heading  ="Form Tab"  > 
                 <  ng-form   name  ="nestedForm"  > 
                     <  div   class  ="form-group"  > 
                         <  label  > Name </  label  > 
                         <  input   type  ="text"   class  ="form-control"   required ng-model  ="model.name"  /> 
                     </  div  > 
                 </  ng-form  > 
             </  uib-tab  > 
             <  uib-tab   index  ="1"   heading  ="Tab One"  >  
                Some Tab Content
              </  uib-tab  > 
             <  uib-tab   index  ="2"   heading  ="Tab Two"  >  
                More Tab Content
              </  uib-tab  > 
         </  uib-tabset  > 
     </  form  >  
    Model:
      <  pre  > {{ model | json }} </  pre  >  
    Nested Form:
      <  pre  > {{ outerForm.nestedForm | json }} </  pre  > 
 </  div  > 
 </  body  > 
 </  html  > 

效果

uib-tabset 配置

active     (Default:   Index of first tab )  - 选项卡索引。设置这个现有选项卡的标签索引。

 <  button   type  ="button"   class  ="btn btn-default btn-sm"   ng-click  ="uibTabDemo = 1"  > 点击后切换到two </  button  > 
     <  uib-tabset   active  ="uibTabDemo"  > 
         <  uib-tab   index  ="0"   heading  ="one"  >  
            one
          </  uib-tab  > 
         <  uib-tab   index  ="1"   heading  ="two"  >  
            two
          </  uib-tab  > 
     </  uib-tabset  > 

justified   $   (Default:   false )  -标签填补容器的宽度受否一致。

 <  uib-tabset   active  ="activeJustified"   justified  ="true"  > 
         <  uib-tab   index  ="0"   heading  ="Justified"  > Justified content </  uib-tab  > 
         <  uib-tab   index  ="1"   heading  ="SJ"  > Short Labeled Justified content </  uib-tab  > 
         <  uib-tab   index  ="2"   heading  ="Long Justified"  > Long Labeled Justified content </  uib-tab  > 
         <  uib-tab   index  ="3"   heading  ="Long "  > Long Labeled content </  uib-tab  > 
         <  uib-tab   index  ="4"   heading  ="Justified"  > Justified content </  uib-tab  > 
     </  uib-tabset  > 

 <  uib-tabset   active  ="activeJustified"   justified  ="false"  > 
         <  uib-tab   index  ="0"   heading  ="Justified"  > Justified content </  uib-tab  > 
         <  uib-tab   index  ="1"   heading  ="SJ"  > Short Labeled Justified content </  uib-tab  > 
         <  uib-tab   index  ="2"   heading  ="Long Justified"  > Long Labeled Justified content </  uib-tab  > 
         <  uib-tab   index  ="3"   heading  ="Long "  > Long Labeled content </  uib-tab  > 
         <  uib-tab   index  ="4"   heading  ="Justified"  > Justified content </  uib-tab  > 
     </  uib-tabset  > 

template-url   (Default:   uib/template/tabs/tabset.html )  - 一个URL代表组件使用的模板位置。

type   (Defaults:   tabs )  - 导航类型。可能的值是“tabs”和“ pills ”。以下是pills类型

 <  uib-tabset   type  ="pills"  > 
         <  uib-tab   heading  ="Default Size"  > Tab 1 content </  uib-tab  > 
         <  uib-tab   heading  ="Small Button"   classes  ="btn-sm"  > Tab 2 content </  uib-tab  > 
     </  uib-tabset  > 

vertical   $   (Default:   false )  - 标签是否垂直堆叠显示(最好设置type为pills,因为ui-bootstrap并没有对对垂直显示做样式调整)。

 <  uib-tabset   active  ="activePill"   vertical  ="true"   type  ="pills"  > 
         <  uib-tab   index  ="0"   heading  ="Vertical 1"  > Vertical content 1 </  uib-tab  > 
         <  uib-tab   index  ="1"   heading  ="Vertical 2"  > Vertical content 2 </  uib-tab  > 
     </  uib-tabset  > 

uib-tab 配置

classes   $  - 一个可选的字符串,内容为空格分隔的CSS类.这个类是作用到标签上的,而不是内容上的

 Tabbed pills with CSS classes
      <  uib-tabset   type  ="pills"  > 
         <  uib-tab   heading  ="Default Size"  > Tab 1 content </  uib-tab  > 
         <  uib-tab   heading  ="Small Button"   classes  ="btn-sm"  > Tab 2 content </  uib-tab  > 
     </  uib-tabset  > 

deselect()   $  - 当标签被激活时,一个可选的表达式

disable   $     (Default:   false )  - 禁用选项卡

heading  - 标题文本

 <  uib-tabset  > 
         <  uib-tab   index  ="0"   heading  ="one"  >  
            one
          </  uib-tab  > 
         <  uib-tab   index  ="1"   heading  ="two"  >  
            two
          </  uib-tab  > 
     </  uib-tabset  > 

index  - 标签索引。必须是唯一的数字或字符串。

select()   $  - 一个可选的表达式,当标签被激活时触发。

$scope.tabs =  [
                    { title: 'Dynamic Title 1', content:'Dynamic content 1'  },
                    { title: 'Dynamic Title 2', content:'Dynamic content 2', disabled:  true   }
                ];

                $scope.alertMe  =  function  () {
                    console.log( 'demo' )
                }; 

template-url   (Default:   uib/template/tabs/tab.html )  - 一个URL的位置代表使用选项卡标题的模板。

Tabset heading

如果使用uib-tabset字符串标题无法满足需求,您也可以使用一个uib-tab-heading元素。也可以使用HTML。

 <  uib-tabset   active  ="active"  > 
         <  uib-tab   index  ="0"   heading  ="Static title"  > Static content </  uib-tab  > 
         <  uib-tab   index  ="1"   select  ="alertMe()"  > 
             <  uib-tab-heading  > 
                 <  i   class  ="glyphicon glyphicon-bell"  ></  i  >   Alert!
              </  uib-tab-heading  >  
            I've got an HTML heading, and a select callback. Pretty cool!
          </  uib-tab  > 
     </  uib-tabset  > 

 

已知的问题

要在标签中使用可点击元素(例如a标签),你必须改为使用div元素,而不是a元素,并设置相应的样式。

 

查看更多关于angular-ui-bootstrap插件API - Tabs的详细内容...

  阅读:41次