1、创建和使用
var app = angular.module('myApp',['ng']);
app.directive('指令名称',func);

自定义指令的命名:
驼峰式,有两部分构成,前缀一般是公司或者项目的缩写,后缀表示的为指令的作用(tsHello)
使用指令时:采用烤串式的方式去使用
(ts-hello)

2、高级

属性:
①template 显示的模板内容
②restrict: 'EACM' (E:元素A:属性C:类M:注释)
作为注释去调用自定义指令时,需要设置replace属性为true
③replace 替换
④scope:接收参数

<!DOCTYPE html>
<html ng-app="myModule">
<head lang="en">
<meta charset="UTF-8">
<script src="js/angular.js"></script>
<title></title>
</head>
<body>
<!--控制器的调用-->
<div ng-controller="myCtrl">
<!-- element-->
<ts-hello></ts-hello>
<!-- attribute-->
<div ts-hello></div>
<!-- class-->
<div class="ts-hello"></div>
<!-- directive: ts-hello -->
</div> <script>
//模块的创建
var app = angular.module('myModule',['ng']);
//创建控制器
app.controller('myCtrl', function ($scope) { }) //创建自定义指令
app.directive('tsHello', function () {
return {
template:'<h1>Hello Directive</h1>',
// E:Element A:Atrribute C:Class M:Comment
restrict:'EACM',
replace:true
}
}) </script>
</body>
</html>

3.调用指令来传递参数并处理:

①在自定义的指令内部去准备接收
指定scope,把要传递过来的值存在驼峰式命名的变量中,指定@,在调用指令传参时,就会读取该属性对应的值
scope:{
testName:'@'
}
②传递参数
在调用指令时,指定对应的属性名称和要传递的值
<div test-hello test-name="123"></div>

<!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
<meta charset="UTF-8">
<script src="js/angular.js"></script>
<title></title>
</head>
<body> <div ng-controller="myCtrl">
<div ts-hello test-name="world"></div>
</div>
<script>
var app = angular.module('myApp', ['ng']);
// 创建指令并传参
app.directive('tsHello', function () {
return {
template:'<span> ' +
'Hello {{testName}}</span>',
scope:{
testName:'@'
}
}
}) app.controller('myCtrl', function () {
console.log('myCtrl func is called');
})
</script>
</body>
</html>
<!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
<meta charset="UTF-8">
<script src="js/angular.js"></script>
<title></title>
</head>
<body> <div ng-controller="myCtrl">
</div>
<!--调用指令,并通过属性传参-->
<ts-directive ts-name="Hello World"></ts-directive> <script>
var app = angular.module('myApp', ['ng']);
//创建指令
app.directive('tsDirective', function () {
return{
template:'<h1>{{tsName}}</h1>',
scope:{
tsName:'@'//@取ts-name属性对应的值
}
}
}) app.controller('myCtrl', function () {
console.log('myCtrl func is called');
})
</script>
</body>
</html>

最新文章

  1. Java时间类型转换
  2. AFN3.0封装
  3. android Timer使用方法
  4. Console ArcEngine 许可绑定
  5. django中上传图片的写法(转)
  6. VisualSVN SERVER的安装和使用
  7. C#基础-Func,Action
  8. Android定时器功能实现方法
  9. Servlet Examples
  10. jqGrid的搜索框下拉
  11. 微坑---微信小程序ios上时间字符串转换为时间戳时,在开发工具上和安卓手机上运行成功
  12. DB2常用命令小结
  13. logstash收集IIS日志
  14. [转]VUE优秀UI组件库合集
  15. JQuery 元素操作 each循环
  16. 基于ORB的LinearBlend融合
  17. HadoopMR-Spark-HBase-Hive
  18. 小小的学习FPGA建议
  19. Objective-C 内存管理和ARC
  20. 概念与用法-cookie,session,auth (认证系统)

热门文章

  1. s5_day3作业
  2. CWinApp类CMultiDocTemplate类CDocument类CView类的关系
  3. Java:执行jar文件命令
  4. 20145219 《Java程序设计》第02周学习总结
  5. 0927—MySQL常用语句集合
  6. COS-2OS结构和硬件支持
  7. ELK分布式日志收集搭建和使用
  8. nagios无法载入静态资源
  9. ubuntu 支持中文
  10. scala学习手记40 - case表达式里的模式变量和常量