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 相关文章推荐
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 Javascript
如何使用AngularJs打造权限管理系统【简易型】
May 09 Javascript
浅析JavaScript Array和string的转换(推荐)
May 20 Javascript
AngularJS 表达式详细讲解及实例代码
Jul 26 Javascript
微信小程序 登录的简单实现
Apr 19 Javascript
浅谈React中组件间抽象
Jan 27 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
Mar 20 jQuery
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 Javascript
微信小程序实现多个按钮的颜色状态转换
Feb 15 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
Sep 21 Javascript
javascript设计模式 ? 原型模式原理与应用实例分析
Apr 10 Javascript
Vue项目移动端滚动穿透问题的实现
May 19 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python 合并文件的具体实例
2013/08/08 Python
Cpy和Python的效率对比
2015/03/20 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
Python异常处理知识点总结
2019/02/18 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
解释i节点在文件系统中的作用
2013/11/26 面试题
幼儿园毕业教师感言
2014/02/21 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
受资助学生感谢信
2015/01/21 职场文书
Django模型层实现多表关系创建和多表操作
2021/07/21 Python
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS