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.open不被拦截的实现代码
Aug 22 Javascript
jquery offset函数应用实例
Nov 14 Javascript
js实现精美的图片跟随鼠标效果实例
May 16 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 Javascript
jQuery实现三级菜单的代码
May 09 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
Jun 01 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
Jul 19 Javascript
js时间比较 js计算时间差的简单实现方法
Aug 26 Javascript
浅谈Javascript中的函数、this以及原型
Oct 09 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
Feb 15 Javascript
Vue.js路由vue-router使用方法详解
Mar 20 Javascript
了解VUE的render函数的使用
Jun 08 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
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
JavaScript OOP面向对象介绍
2010/12/02 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
Python单链表原理与实现方法详解
2020/02/22 Python
Python实现分数序列求和
2020/02/25 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
三星印度官网:Samsung印度
2019/08/03 全球购物
保险内勤岗位职责
2014/04/05 职场文书
产品设计开发计划书
2014/05/07 职场文书
关心下一代工作先进事迹
2014/08/15 职场文书
长城导游词300字
2015/01/30 职场文书
聘任书范文大全
2015/09/21 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
Golang获取List列表元素的四种方式
2022/04/20 Golang