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 arguments 对象使用介绍
Oct 18 Javascript
jquery实现点击文字可编辑并修改保存至数据库
Apr 15 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 Javascript
jQuery简单操作cookie的插件实例
Jan 13 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
Dec 01 Javascript
新闻上下滚动jquery 超简洁(必看篇)
Jan 21 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
Dec 18 Javascript
vue.js2.0点击获取自己的属性和jquery方法
Feb 23 jQuery
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
jquery的$().each和$.each的区别
Jan 18 jQuery
vue中使用elementUI组件手动上传图片功能
Dec 13 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 22 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
PHP4实际应用经验篇(6)
2006/10/09 PHP
PHP中for与foreach的区别分析
2011/03/09 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
Open and Print a Word Document
2007/06/15 Javascript
JQuery 风格的HTML文本转义
2009/07/01 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
Vue.js中组件中的slot实例详解
2017/07/17 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
python实现公司年会抽奖程序
2019/01/22 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
python文件编写好后如何实践
2020/07/07 Python
html5调用app分享功能示例(WebViewJavascriptBridge)
2018/03/21 HTML / CSS
do you have any Best Practice for testing
2016/06/04 面试题
2014年教师节寄语
2014/04/03 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
大学生受助感言
2015/08/01 职场文书
导游词之襄阳古城
2019/09/27 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
Python常遇到的错误和异常
2021/11/02 Python
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis