今天,我们来学习一下angular中怎么使用指令来实现两个选项卡的问题。

首先,要先引入jQuery文件与angularjs文件。

<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*定义选中按钮样式*/
.on {
background: red;
}
/*对内容进行布局*/
p {
border: #000 1px solid;
width: 200px;
display: none;
height: 200px;
}
</style>
<script src="jquery-3.1.1.js"></script>
<script src="angular.min.js"></script>
<script>
var app=angular.module("app",[]);//定义angular模块
app.controller("ctrl",function ($scope) {
$scope.list=[
{"name":"新闻","content":"新闻"},
{"name":"体育","content":"体育"},
{"name":"娱乐","content":"娱乐"}
];
$scope.list2=[
{"name":"新闻2","content":"新闻2"},
{"name":"体育2","content":"体育2"},
{"name":"娱乐2","content":"娱乐2"},
{"name":"农业","content":"农业"}
]
});
app.directive("myTab",function () { //定义名字时要使用驼峰式命名法
return{
link:function (scope,element,attr) {//使用jQuery来实现效果
element.delegate("input","click",function () {
$(this).attr("class","on").siblings("input").attr("class","");
$(this).siblings("p").eq($(this).index()).show().siblings("p").hide();
})
},
restrict:"ECMA",
replace:true,
// scope:true,//解决冲突问题
scope:{
myId:"@", //绑定字符串
myData:"=" //绑定变量
}
templateUrl:"tab.html"
}
})
</script>
</head>
<body ng-controller="ctrl">
<my-tab my-id="div1" my-data="list"></my-tab>
<my-tab my-id="div2" my-data="list2"></my-tab>
</body>
</html> tab.html部分
<div id="{{myId}}">
<input ng-repeat="data in myData" type="button" value="{{data.title}}" ng-class="{on:$first}">
<p ng-repeat="data in myData" ng-style="{display: $first ? 'block' : 'none'}">{{data.content}}</p>
</div>
这样小小的两个选项卡效果就完成了,你们学会了吗?你们也可以使用自定义指令的方式写拖拽。

anguar使用指令写选项卡的更多相关文章

  1. jq方法写选项卡的基本原理以及三种方法

    使用jq写选项卡,告别了繁琐的循环以及命名规范 基本原理: 1.当某一个btn被选中时,将这个btn的背景颜色设为橘色,其余兄弟btn背景颜色设为空(none) 2.如果子div与btn的索引相同,就 ...

  2. JavaScript写选项卡

    方法一: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  3. jQuery写选项卡

    <!DOCTYPE html> <htmllang="en"> <head> <metacharset="UTF-8" ...

  4. vue中指令写了一个demo

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. AngularJs 指令实现选项卡

    HTML: <body ng-controller="Aaa"> <my-tab my-id="div1" my-data="dat ...

  6. angularJs指令深度分析

    AngularJs的指令定义大致如下 angular.module("app",[]).directive("directiveName",function() ...

  7. angularjs指令(二)

    最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方.   Angularjs指令定义的API AngularJs的指令定义大致如下 angula ...

  8. 你知道用AngularJs怎么定义指令吗?

    前言 最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方.   Angularjs指令定义的API AngularJs的指令定义大致如下 ang ...

  9. 学习AngularJs:Directive指令用法(完整版)

    这篇文章主要学习AngularJs:Directive指令用法,内容很全面,感兴趣的小伙伴们可以参考一下   本教程使用AngularJs版本:1.5.3 AngularJs GitHub: http ...

随机推荐

  1. 笔记:Spring Boot 项目构建与解析

    构建 Maven 项目 通过官方的 Spring Initializr 工具来产生基础项目,访问 http://start.spring.io/ ,如下图所示,该页面提供了以Maven构建Spring ...

  2. poj 2503 查字典

    Description You have just moved from Waterloo to a big city. The people here speak an incomprehensib ...

  3. SAS9.2的增强编辑器注册解决方案

    系统环境:Win10,64位,SAS9.2破解版 问题: 原win7换成win10后,重装SAS9.2,增强编辑器无法使用. 解决方案: 方案一: 点击"视图"-选择程序编辑器,这 ...

  4. django “如何”系列4:如何编写自定义模板标签和过滤器

    django的模板系统自带了一系列的内建标签和过滤器,一般情况下可以满足你的要求,如果觉得需更精准的模板标签或者过滤器,你可以自己编写模板标签和过滤器,然后使用{% load %}标签使用他们. 代码 ...

  5. zabbix自定义key监控mysql主从同步超简单!

    原理:利用在slave上运行show slave status获取Slave_IO_Running和Slave_SQL_Running的值 1.在zabbix客户端配置文件中加入: 首先要对mysql ...

  6. C++关联容器知识总结

    C++的容器类型可以分为顺序容器和关联容器两大类.顺序容器的知识可以参看我上篇的随笔<C++顺序容器知识总结>.关联容器支持通过键值来高效的查找和读取元素,这是它和顺序容器最大的区别.两种 ...

  7. maven库

    1.本地仓库 本地仓库是你本地的一个山寨版,只有你看的到,主要起缓存作用. 当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有.如果有则直接返回,否则会向远程仓库请求,并做缓存. 本地仓库默认在 ...

  8. 开篇/javascript基础知识点

    html css js 分别是一个网站的:内容  样式 行为: js 的三种样式:行内 内嵌 外链. 函数的特性:1.可以重复执行的代码块.2.不调用不执行.3.要访问里面,必须先执行. 内置对象:j ...

  9. ReentrantLock 与 AQS 源码分析

    ReentrantLock 与 AQS 源码分析 1. 基本结构    重入锁 ReetrantLock,JDK 1.5新增的类,作用与synchronized关键字相当,但比synchronized ...

  10. java基础之类与对象

    [类 & 对象] 1.类:具有一系列相同属性(特征)和方法(行为)的个体的集合,称为类. 类是一个抽象的概念,只能说类具有哪些属性,而不能直接对属性进行赋值. 例如:人类有身高的属性,但是不能 ...