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 相关文章推荐
jquery tab插件精简版分享
Sep 10 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
Aug 07 Javascript
自己动手手写jQuery插件总结
Jan 20 Javascript
省市区三级联动下拉框菜单javascript版
Aug 11 Javascript
JavaScript前端开发之实现二进制读写操作
Nov 04 Javascript
前端JS面试中常见的算法问题总结
Dec 23 Javascript
10个最优秀的Node.js MVC框架
Aug 24 Javascript
JavaScript中使用参数个数实现重载功能
Sep 01 Javascript
js判断文件类型大小并给出提示的实现方法
Jan 03 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
Feb 12 Javascript
如何实现iframe父子传参通信
Feb 05 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
Jul 07 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中防止SQL注入最好的方法是什么
2013/06/10 PHP
php生成随机数的三种方法
2014/09/10 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
Smarty模板配置实例简析
2019/07/20 PHP
为你的 Laravel 验证器加上多验证场景的实现
2020/04/07 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
python中如何写类
2020/06/29 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
输入N,打印N*N矩阵
2012/02/20 面试题
.NET面试问题集
2015/12/08 面试题
大学生文员专业个人求职信范文
2014/01/05 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
旷课检讨书范文
2015/01/27 职场文书
详解MySQL中的主键与事务
2021/05/27 MySQL
浅析Python中的随机采样和概率分布
2021/12/06 Python
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis