AngularJS实现标签页的两种方式


Posted in Javascript onSeptember 05, 2016

一、通过普通指令实现标签页

<link rel="stylesheet" href="views/show/tab.css"/>
<div>
 <ul class="nav nav-tabs" ng-init="vm.activeTab=1">
 <li ng-class="{active: vm.activeTab == 1}"><a href="javascript:;" ng-click="vm.activeTab = 1">标签1</a></li>
 <li ng-class="{active: vm.activeTab == 2}"><a href="javascript:;" ng-click="vm.activeTab = 2">标签2</a></li>
 </ul>
 <div class="tab-content tab-bordered">
 <div class="tab-panel" ng-show="vm.activeTab == 1">
 标签1的内容
 </div>
 <div class="tab-panel" ng-show="vm.activeTab == 2">
 标签2的内容
 </div>
 </div>
</div>

<h3>说明</h3>
这里演示的是直接通过bootstrap实现的方法。
<hr/>还可以通过angular-bootstrap的tabset指令实现,参见 <a href="http://angular-ui.github.io/bootstrap/#/tabs" target="_blank">官方Demo</a>


'use strict';

angular.module('ngShowcaseApp').controller('ctrl.show.tab', function ($scope) {
 var vm = $scope.vm = {};
});


.tab-content.tab-bordered {
 border: 1px solid lightgray;
 border-top: none;
 padding: 15px;
 border-radius: 0 0 4px 4px;
}

二、自定义指令实现的标签页

<!DOCTYPE html>
<html lang="en" ng-app="demo">
<head>
 <meta charset="UTF-8">
 <title></title>
 <script src="lib/angular.min.js" type="text/javascript"></script>
 <script src="lib/angular-route.js" type="text/javascript"></script>
 <script src="lib/jquery-2.1.4.min.js"></script>
 <script src="lib/bootstrap.js" type="text/javascript"></script>
 <link rel="stylesheet" href="css/bootstrap.css" type="text/css"/>
 <style>
 .btn-group{
  position: relative;
  left: 40px;
 }
 .list-group{
  position: relative;
  left: 0;
 }

 .list-group-item{

 }
 #list3{
  width: 200px;
 }
 </style>
</head>
<body >

 <div ng-controller="directiveControl">
 <div style="width: 100px;height: 100px;border: 1px solid blue" ng-class="{'hidden':value}" ></div>
 <div>
  <list ng-model="value" ></list>
 </div>
 <script type="text/ng-template" id="list.html">
  <div >
  <div class="btn-group">
   <ul class="nav nav-tabs">
   <li role="presentation" ng-mouseover="flag=3" ng-mouseleave="flag=4"><a href="#" >{{name}}</a></li>
   </ul>
  </div>
  <div class="list-group" id="list3" ng-show="flag==3" ng-mouseover="flag=3" ng-mouseleave="flag=4">
   <ul >
   <li class="list-group-item " ng-click="fun1()"><a href="#">Action</a></li>
   <li class="list-group-item "><a href="#">Another action</a></li>
   <li class="list-group-item "><a href="#">Something else here</a></li>
   <li class="list-group-item "><a href="#">Separated link</a></li>
   </ul>
  </div>
  </div>
 </script>
 </div>

</body>
<script>
 var demo=angular.module("demo",[]);
 demo.controller("directiveControl", function ($scope) {

 });
 demo.directive("list",[function () {
 return {
  restrict:'EA',
  templateUrl:'list.html',
  scope:{
  value:'=ngModel'
  },

  link: function (scope,element,attr) {
  scope.name="home";
  scope.lists=[{name:'home'},{name:'family '}];
  scope.fun1= function () {
   scope.value=true;
   console.log("a")
  }
  }
 }
 }])
</script>
</html>

(1)首先要解决指令必须写在一个根标签中,一定要用div包裹
(2)指令外部传递参数要使用ng-model,来声明变量,
         在指令中用scope:{
         value:'ngModel'
         }来赋值

总结

以上就是关于AngularJS实现标签页的全部内容,希望这篇文章对大家学习或使用AngularJs能有所帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
jquery 插件 任意位置浮动固定层
Dec 25 Javascript
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 Javascript
Javascript的表单与验证-非空验证
Mar 18 Javascript
javascript制作照片墙及制作过程中出现的问题
Apr 04 Javascript
深入理解JQuery中的事件与动画
May 18 Javascript
sencha ext js 6 快速入门(必看)
Jun 01 Javascript
EasyUI Pagination 分页的两种做法小结
Jul 09 Javascript
Node.js的基本知识简单汇总
Sep 19 Javascript
微信小程序中hidden不生效原因的解决办法
Apr 26 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
Jun 28 Javascript
原生JS实现的简单轮播图功能【适合新手】
Aug 17 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
Sep 02 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
Sep 05 #Javascript
详细谈谈AngularJS的子级作用域问题
Sep 05 #Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
Sep 05 #Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
Sep 05 #Javascript
JS简单随机数生成方法
Sep 05 #Javascript
使用React实现轮播效果组件示例代码
Sep 05 #Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
Sep 05 #Javascript
You might like
谈谈PHP语法(3)
2006/10/09 PHP
PHP JSON格式数据交互实例代码详解
2011/01/13 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
PHP读取Excel类文件
2017/05/15 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
显示js对象所有属性和方法的函数
2009/10/16 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
webpack3之loader全解析
2017/10/26 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python实现通过shelve修改对象实例
2014/09/26 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
Python循环实现n的全排列功能
2019/09/16 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
Python3 集合set入门基础
2020/02/10 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android