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 01 Javascript
JQuery 学习笔记 选择器之六
Jul 23 Javascript
基于jquery的web页面日期格式化插件
Nov 15 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
Jan 02 Javascript
jQuery实现表格展开与折叠的方法
May 04 Javascript
angularjs学习笔记之双向数据绑定
Sep 26 Javascript
AngularJS入门教程之静态模板详解
Aug 18 Javascript
详解堆的javascript实现方法
Nov 29 Javascript
AngularJS中$http的交互问题
Mar 29 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
Nov 10 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
Jun 28 Javascript
js实现网页随机验证码
Oct 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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
php在文件指定行中写入代码的方法
2012/05/23 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
JavaScript中DOM详解
2015/04/13 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
Node 代理访问的实现
2019/09/19 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
Python中使用不同编码读写txt文件详解
2015/05/28 Python
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
Python中常见的异常总结
2018/02/20 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
英语专业毕业个人求职自荐信
2013/09/21 职场文书
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
超市活动计划书
2014/04/24 职场文书
视光学专业自荐信
2014/06/24 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
简历自我评价模板
2015/03/11 职场文书
大学体育课感想
2015/08/10 职场文书
高中信息技术教学反思
2016/02/16 职场文书
Python编程源码报错解决方法总结经验分享
2021/10/05 Python