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 相关文章推荐
javascript 播放器 控制
Jan 22 Javascript
JS图像无缝滚动脚本非常好用
Feb 10 Javascript
JavaScript中的事件委托及好处
Jul 12 Javascript
简单的js表格操作
Sep 24 Javascript
利用jQuery实现一个简单的表格上下翻页效果
Mar 14 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
Angular4表单验证代码详解
Sep 03 Javascript
VSCode 配置React Native开发环境的方法
Dec 27 Javascript
30分钟快速实现小程序语音识别功能
Nov 27 Javascript
JS代码优化的8点建议
Feb 04 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
Apr 11 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
Jul 28 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横向重复区域显示二法
2008/09/25 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
php 带逗号千位符数字的处理方法
2012/01/10 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
Python3中的bytes和str类型详解
2019/05/02 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
全球性的在线商店:Vogca
2019/05/10 全球购物
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
实习指导教师评语
2014/12/30 职场文书
房产公证书样本
2015/01/23 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
win10更新失败无限重启解决方法
2022/04/19 数码科技
PYTHON InceptionV3模型的复现详解
2022/05/06 Python