好得很程序员自学网

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

angular ng-class\tab切换(从服务器引入数据)或用指令写

1.ng-class

(1)

  <  style  >  
        .red  {  
            background  :   red  ;  
            color  :   #fff  ; 
         } 
     </  style  > 
 </  head  > 
 <  body   ng-app  ="myApp"  > 
     <  div   ng-controller  ="myCtrl"  > 
         <  p   ng-class  ="abc"  > 安徽啊,就安化路诶于海峰斤是为框架锕锕嗄安徽a.h吖哈服用过层面上 </  p  > 
     </  div  > 
     <  script  > 
         var   app  =  angular.module(  '  myApp  '  ,[]);
        app.controller(  '  myCtrl  '  ,[  '  $scope  '  ,  function  (scope){
            scope.abc  =  '  red  '  ;
        }]);
      </  script  >  

(2)

  <  style  >  
    .red  {  
        background  :  red  ; 
     }  
    .green  {  
        background  :   green  ; 
     }  
    .blue  {  
        background  :   blue  ; 
     } 
 </  style  > 
 </  head  > 
 <  body   ng-app  ="myApp"  > 
     <  div   ng-controller  ="myCtrl"  > 
         <  select   ng-model  ="abc"  > 
             <  option   value  ="red"  > 红色 </  option  > 
             <  option   value  ="green"  > 绿色 </  option  > 
             <  option   value  ="blue"  > 蓝色 </  option  > 
         </  select  > 
         <  h1   ng-class  ="abc"  > 爱极客很搭上次按时,吃吧爱是火车爱是,不好吃暗示会开车 </  h1  > 
     </  div  > 
     <  script  > 
         var   app  =  angular.module(  '  myApp  '  ,[]);
        app.controller(  '  myCtrl  '  ,[  '  $scope  '  ,  function  (scope){
            scope.abc  =  '  red  '  ;
        }])
      </  script  > 
 </  body  >  

(3)

  <  style  >  
    .red  {  
        background  :  red  ; 
     }  
    .green  {  
        background  :   green  ; 
     }  
    .blue  {  
        background  :   blue  ; 
     } 
 </  style  > 
 </  head  > 
 <  body   ng-app  ="myApp"  > 
     <  div   ng-controller  ="myCtrl"  > 
         <  button   ng-click  =getSec()  > 获取当前的秒数 </  button  > 
         <  h1   ng-class  ="{red:x%2==0,blue:x%2!=0}"  > 当前的秒数为:{{x}} </  h1  > 
     </  div  > 
     <  script  > 
         var   app  =  angular.module(  '  myApp  '  ,[]);
        app.controller(  '  myCtrl  '  ,[  '  $scope  '  ,  function  (scope){
            scope.getSec  =  function  (){
                scope.x  =  new   Date().getSeconds();
            }
            
        }])
      </  script  > 
 </  body  >  

(4)

  <  style  >  
*  {  
    padding  :   0  ;  
    margin  :   0  ;  
    list-style  :   none  ; 
 }  
    .red  {  
        background  :   red  ; 
     }  
    .pink  {  
        background  :   pink  ; 
     }  
    .green  {  
        background  :   green  ; 
     }  
    ul li  {  
        height  :   40px  ;  
        font-size  :   25px  ; 
     } 
 </  style  > 
 </  head  > 
 <  body   ng-app  ="myApp"  > 
     <  ul   ng-controller  ="myCtrl"  > 
         <  li   ng-repeat  ="d in data"   ng-class  ="{red:$first,pink:$middle,green:$last}"  > 
             <  span  > 编号:{{$index}} </  span  > 
             <  span  > {{d.name}} </  span  > 
             <  span  > {{d.sex}} </  span  > 
         </  li  > 
     </  ul  > 
     <  script  > 
         var   app  =  angular.module(  '  myApp  '  ,[]);
        app.controller(  '  myCtrl  '  ,[  '  $scope  '  ,  function  (scope){
            scope.data  =  [
                {  '  name  '  :  '  张三  '  ,  '  sex  '  :  '  男  '  },
                {  '  name  '  :  '  张三2  '  ,  '  sex  '  :  '  男2  '  },
                {  '  name  '  :  '  张三3  '  ,  '  sex  '  :  '  男3  '  },
                {  '  name  '  :  '  张三4  '  ,  '  sex  '  :  '  男4  '  }
            ];
        }]);
      </  script  >  

效果图:

 

2.从远程服务器读取数据

(1)tab切换

注意:ng-repeat遍历的是数组格式的

  <  script   src  ="angular-1.5.8.min.js"  ></  script  > 
 <  style  >  
    *  {  
        margin  :   0  ;  
        padding  :   0  ;  
        list-style  :   none  ; 
     }  
    .box  {  
        width  :   450px  ;  
        padding  :   20px  ;  
        margin  :  50px auto 0  ;  
        border  :  1px solid red  ; 
     }  
    .box ul li  {  
        margin  :   10px 0 0  ; 
     }  
    .con1 .a1,.con2 .a2,.con3 .a3,.con4 .a4  {  
        background  :   pink  ;  
        color  :   #fff  ; 
     } 

 </  style  > 
 </  head  > 
 <  body   ng-app  ="myApp"   ng-init  ="x='con1'"  > 
     <  div   ng-controller  ="myCtrl"   class  ="box"  > 
         <  nav   ng-class  ="x"  > 
             <  a   ng-click  ="x='con1'"   class  ="a1"   href  ="#"  > 新闻 </  a  > 
             <  a   ng-click  ="x='con2'"   class  ="a2"   href  ="#"  > 热点 </  a  > 
             <  a   ng-click  ="x='con3'"   class  ="a3"   href  ="#"  > 八卦 </  a  > 
             <  a   ng-click  ="x='con4'"   class  ="a4"   href  ="#"  > 体育 </  a  > 
         </  nav  > 
         <  ul   ng-show  ="x=='con1'"  > 
             <  li   ng-repeat  ="item in data1"  ><  a   href  ="{{item.url}}"  > {{item.title}} </  a  ></  li  > 
         </  ul  > 
         <  ul   ng-show  ="x=='con2'"  > 
             <  li   ng-repeat  ="item in data2"  ><  a   href  ="{{item.url}}"  > {{item.title}} </  a  ></  li  > 
         </  ul  > 
         <  ul   ng-show  ="x=='con3'"  > 
             <  li   ng-repeat  ="item in data3"  ><  a   href  ="{{item.url}}"  > {{item.title}} </  a  ></  li  > 
         </  ul  > 
         <  ul   ng-show  ="x=='con4'"  > 
             <  li   ng-repeat  ="item in data4"  ><  a   href  ="{{item.url}}"  > {{item.title}} </  a  ></  li  > 
         </  ul  > 
     </  div  > 
 </  body  > 
 <  script  > 
     var   app  =  angular.module(  '  myApp  '  ,[]);
    app.controller(  '  myCtrl  '  ,[  '  $scope  '  ,  '  $http  '  ,  function  (scope,http){
        http.get(  '  http://qd.bokanedu.com/tgr/api/index.aspx?day=82&type=tabs  '  ).success(  function  (d){
            scope.data1  =  d.a1;
            scope.data2  =  d.a2;
            scope.data3  =  d.a3;
            scope.data4  =  d.a4;
        })
    }])
  </  script  >  

效果图:

(2)另一种tab切换

  <  script   src  ="angular-1.5.8.min.js"  ></  script  > 
 <  style  >  
    *  {  
        margin  :   0  ;  
        padding  :   0  ;  
        list-style  :   none  ; 
     }  
    .box  {  
        width  :   450px  ;  
        padding  :   20px  ;  
        margin  :  50px auto 0  ;  
        border  :  1px solid red  ; 
     }  
    header  {  
        overflow  :   hidden  ;  
        background  :   green  ;  
        height  :   40px  ; 
     }  
    header .grid  {  
        margin  :   17px 15px 0 15px  ;  
        float  :   right  ;  
        width  :   16px  ;  
        height  :   16px  ;  
        background  :  url(images/02.png) 0 0 no-repeat  ;  
     }  
    header .list  {  
        margin  :   17px 15px 0 0  ;  
        float  :   right  ;  
        width  :   16px  ;  
        height  :   16px  ;  
        background  :  url(images/01.png) 0 0 no-repeat  ;  
     }  
    ul.list  {  
        overflow  :   hidden  ; 
     }  
    ul.list li img  {  
        width  :   50px  ;  
        height  :   50px  ; 
     }  
    ul.grid  {  
        overflow  :   hidden  ; 
     }  
    ul.grid li  {  
        float  :   left  ;  
        margin  :   10px 0  0 25px
      }  
    ul.grid li img  {  
        width  :   120px  ;  
        height  :   120px  ; 
     }  
    .pink  {  
        background  :   pink  ; 
     }  
    .purple  {  
        background  :   purple  ; 
     } 
 </  style  > 
 </  head  > 
 <  body   ng-app  ="myApp"   ng-init  ="x='list'"  > 
     <  div   ng-controller  ="myCtrl"   class  ="box"  > 
         <  header  > 
             <  a   href  ="#"   ng-click  ="x='grid'"   class  ="grid"  ></  a  > 
             <  a   href  ="#"   ng-click  ="x='list'"   class  ="list"  ></  a  > 
         </  header  > 
         <  ul   class  ="list"   ng-show  ="x=='list'"  > 
             <  li   ng-repeat  ="item in data"   ng-class  ="{pink:$index%2==0,purple:$index%2!=0}"  > 
                 <  img   ng-src  ="{{item.image}}"   alt  =""  > 
                 <  h3  > {{item.title}} </  h3  > 
                 <  p  > {{item.date}} </  p  > 
             </  li  > 
         </  ul  > 
         <  ul   class  ="grid"   ng-show  ="x=='grid'"  > 
             <  li   ng-repeat  =" item in data"  > 
                 <  img   ng-src  ="{{item.image}}"   alt  =""  > 
             </  li  > 
         </  ul  > 
     </  div  > 
 </  body  > 
 <  script  > 
     var   app  =  angular.module(  '  myApp  '  ,[]);
    app.controller(  '  myCtrl  '  ,[  '  $scope  '  ,  '  $http  '  ,  function  (scope,http){
        http.get(  '  http://qd.bokanedu.com/tgr/api/index.aspx?day=82&type=search  '  ).success(  function  (d){
            scope.data  =  d;
        })
    }])
  </  script  >  

效果图:

3.自定义指令写tab切换

 <  script   src  ="jquery-2.1.14.min.js"  ></  script  > 
 <  script   src  ="angular-1.5.8.min.js"  ></  script  > 
 <  style  >  
    .box  {  
        width  :   450px  ;  
        margin  :   50px auto 10px  ;  
        background  :   #A6D0C4  ; 
     }  
    h1  {  
        display  :   none  ; 
     }  
    h1.show  {  
        display  :   block  ; 
     }  
    .select  {  
        background  :   pink  ; 
     } 
 </  style  > 
 </  head  > 
 <  body   ng-app  ="myApp"  > 
     <  div   ng-controller  ="myCtrl"  > 
         <  div   my-tab my-class  ="box"   my-data  ="data1"  > 
            
         </  div  > 
         <  div   my-tab my-class  ="box"   my-data  ="data2"  > 
            
         </  div  > 
     </  div  > 
 </  body  > 
 <  script  > 
     var   app  =  angular.module(  '  myApp  '  ,[]);
    app.controller(  '  myCtrl  '  ,[  '  $scope  '  ,  function  (scope){
        scope.data1  =  [
            {  '  title  '  :  '  星期一  '  ,  '  content  '  :  '  打豆豆  '  },
            {  '  title  '  :  '  星期二  '  ,  '  content  '  :  '  睡觉觉  '  },
            {  '  title  '  :  '  星期三  '  ,  '  content  '  :  '  看视频  '  },
            {  '  title  '  :  '  星期四  '  ,  '  content  '  :  '  吃零食  '  }
        ];
        scope.data2  =  [
            {  '  title  '  :  '  星期五  '  ,  '  content  '  :  '  吃  '  },
            {  '  title  '  :  '  星期六  '  ,  '  content  '  :  '  玩  '  },
            {  '  title  '  :  '  星期日  '  ,  '  content  '  :  '  学  '  }
        ];
    }]);
    app.directive(  '  myTab  '  ,  function  (){
          return   {
            restrict:  '  ECMA  '  ,
            replace:  true  ,
            scope:{
                myClass:  '  @  '  ,
                myData:  '  =  '  ,
                myFn:  '  &  '  
            },
            controller:[  '  $scope  '  ,  function  (scope){
                scope.abc  =  '  我是自定义指令  '  ;
            }],
            template:  '  <div class="{{myClass}}"><button ng-class="{select:$first}" ng-repeat="d in myData">{{d.title}}</button><h1 ng-class="{show:$first}" ng-repeat=" d in myData">{{d.content}}</h1></div>  '  ,
            link:  function  (scope,element,attr,controller){
                element.on(  '  click  '  ,  '  button  '  ,  function  (){
                      var   i  =  $(  this  ).index();
                    $(  this  ).addClass(  '  select  '  ).siblings(  '  button  '  ).removeClass(  '  select  '  );
                    $(  this  ).siblings(  '  h1  '  ).eq(i).addClass(  '  show  '  ).siblings(  '  h1  '  ).removeClass(  '  show  '  );

                })
            }
        }
    })
  </  script  > 

 

 效果图:

 

查看更多关于angular ng-class\tab切换(从服务器引入数据)或用指令写的详细内容...

  阅读:32次