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 相关文章推荐
window.location和document.location的区别分析
Dec 23 Javascript
JavaScript Event事件学习第一章 Event介绍
Feb 07 Javascript
javascript预加载图片、css、js的方法示例介绍
Oct 14 Javascript
js的回调函数详解
Jan 05 Javascript
浅谈JavaScript字符串与数组
Jun 03 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
Aug 17 Javascript
使用JS和canvas实现gif动图的停止和播放代码
Sep 01 Javascript
关于微信公众号开发无法支付的问题解决
Dec 28 Javascript
世界上最短的数字判断js代码
Sep 09 Javascript
微信小程序网络请求实现过程解析
Nov 06 Javascript
基于JavaScript实现随机点名器
Feb 25 Javascript
vue-cropper组件实现图片切割上传
May 27 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
PHP+ajax 无刷新删除数据
2010/02/20 PHP
php实现图片添加水印功能
2014/02/13 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
2014/08/21 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
用Python输出一个杨辉三角的例子
2014/06/13 Python
python smtplib模块发送SSL/TLS安全邮件实例
2015/04/08 Python
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
python 网络爬虫初级实现代码
2016/02/27 Python
python中abs&amp;map&amp;reduce简介
2018/02/20 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
Python多线程获取返回值代码实例
2020/02/17 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
css3中的calc函数浅析
2018/07/10 HTML / CSS
惠普香港官方商店:HP香港
2019/04/30 全球购物
毕业生幼师求职自荐信
2013/10/01 职场文书
横幅标语大全
2014/06/17 职场文书
高中同学会活动方案
2014/08/14 职场文书
稽核岗位职责
2015/02/10 职场文书
医院病假条范文
2015/08/17 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server