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 相关文章推荐
asp.net下利用js实现返回上一页的实现方法小集
Nov 24 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
Jul 17 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
Jan 08 Javascript
jQuery实现的Div窗口震动效果实例
Aug 07 Javascript
基于jquery实现轮播焦点图插件
Mar 31 Javascript
网络传输协议(http协议)
Nov 18 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
Aug 20 Javascript
js正则取值的结果数组调试方法
Oct 10 Javascript
vue实现下拉加载其实没那么复杂
Aug 13 Javascript
原生js实现无缝轮播图
Jan 11 Javascript
vue-socket.io跨域问题有效解决方法
Feb 11 Javascript
Vue 修改网站图标的方法
Dec 31 Vue.js
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
动态新闻发布的实现及其技巧
2006/10/09 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
JS实现左右拖动改变内容显示区域大小的方法
2015/10/13 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
vue项目查看vue版本及cli版本的实现方式
2020/10/24 Javascript
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
python生成器表达式和列表解析
2016/03/10 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
谈谈Python中的while循环语句
2019/03/10 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
2014年消防工作实施方案
2014/02/20 职场文书
建议书怎么写
2014/03/12 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
民事申诉状范本
2015/05/20 职场文书
签约仪式致辞
2015/07/30 职场文书
导游词之吉林花园山
2019/10/17 职场文书