ng 指令的自定义、使用
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>
ng 指令的自定义、使用的更多相关文章
- Angular中的内置指令和自定义指令
NG中的指令,到底是什么(what)? 为什么会有(why)?以及怎样使用(how)? What: 在NG中,指令扩展HTML功能,为 DOM 元素调用方法.定义行为绑定数据等. Why: 最大程度减 ...
- VUE:内置指令与自定义指令
VUE:内置指令与自定义指令 常用的内置指令 1)v:text 更新元素的 textContent 2)v-html 更新元素的 innerHTML 3)v-if 如果为true,当前标签才会输出到页 ...
- Vue自定义指令和自定义过滤器
一.自定义指令: 自定义指令分为两种:全局自定义指令和局部自定义指令 全局指令指所有组件都可以使用,局部指令是只有在当前组件中才可以使用. 如,我们现在有个需求,当一个输入框获取焦点时,显示出一个di ...
- angularjs中常用的ng指令介绍【转载】
原文:http://www.cnblogs.com/lvdabao/p/3379659.html 一.模板中可使用的东西及表达式 模板中可以使用的东西包括以下四种: 指令(directive).ng提 ...
- AngularJS -- 指令(创建自定义指令)
点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/ 什么是指令 注:本指南是针对已经熟悉AngularJS基础知识的开发人员.如果你才刚 ...
- [译]ng指令中的compile与link函数解析 转
通常大家在使用ng中的指令的时候,用的链接函数最多的是link属性,下面这篇文章将告诉大家complie,pre-link,post-link的用法与区别. 原文地址 angularjs里的指令非常神 ...
- ng指令之 ng-class 篇
1>定义和用法 ng-class 指令用于给 HTML 元素动态绑定一个或多个 CSS 类.ng-class 指令的值可以是字符串,对象,或一个数组. 如果是字符串,多个类名使用空格分隔. 如果 ...
- 必须正确理解的---ng指令中的compile与link函数解析
这个绝对是深入的知识,但看完之后,对NG的理解就很利害啦. http://www.ifeenan.com/angularjs/2014-09-04-%5B%E8%AF%91%5DNG%E6%8C%87 ...
- nginx log_format指令记录自定义响应头
我们用的nginx有做过一些定制开发,为了调试方便,加了一些自定义的response header,那么如何把这个自定义头记录到日志中以便于观察呢? nginx log_format指令支持这种扩展, ...
随机推荐
- Visual Studio 正则表达式替换
查找空行:^(?([^\r\n])\s)*\r?$\r?\n 查找多余的空行:^(?([^\r\n])\s)*\r?$\r?\n^(?([^\r\n])\s)*\r?$\r?\n
- BKDRHash函数
unsigned int BKDRHash(char*str) { unsigned ;// 31 131 1313 13131 131313 etc.. unsigned ; while(*str) ...
- cdoj1339郭大侠与线上游戏
地址:http://acm.uestc.edu.cn/#/problem/show/1339 题目: 郭大侠与线上游戏 Time Limit: 6000/2000MS (Java/Others) ...
- SqlHelper简单实现(通过Expression和反射)2.特性和实体设计
对于需求中的不要暴露DataTable或DataSet,我想到了设计中常用的对象:实体(Entity),通过实体将数据库中的字段封装成类,这样做不仅使代码更有可读性,维护起来也很方便.同时我自定义了一 ...
- hive--udf函数(开发-4种加载方式)
UDF函数开发 标准函数(UDF):以一行数据中的一列或者多列数据作为参数然后返回解雇欧式一个值的函数,同样也可以返回一个复杂的对象,例如array,map,struct. 聚合函数(UDAF):接受 ...
- linux 基础知识总结
1. 查看目录文件命令: 查看以f开头的文件:ll f* 查看/usr/local目录下的文件:ll /usr/local 按最后的修改的时间顺序,列出:ll -t */f* ...
- iconfont的使用
首先你要有一个图标库的账号,我们使用的是阿里矢量图标库,其次你要有一套已经设计好的图标原图.如果你具备了这些,就可以和我一起看iconfont的使用姿势了. 写在前面 不结合其他矢量库或UI框架一起使 ...
- vs2012编译cocos2dx 3.10报错解决方法
新建的一个cocos工程没有改过任何代码直接编译居然报错了? 百度了一下原来是因为vs2012不支持c++11的部分特性 cocos2dx 3.10正好就用到了vs2012不支持的那部分特性,所以报错 ...
- Linux实用命令工具-dtrx根据需要自动解压
刚刚逛网站的时候看到一个命令工具很不错——dtrx. 这个工具能够解压的类型包括tar, zip,rpm, deb, gem, 7z, cpio, rar 等等,并且这个工具能自动识别压缩包类型并进行 ...
- python之模块导入和重载
模块导入和重载 模块导入通过import语句实现,但是在同一次会话中只运行一次. 若想要再次运行文件,调用imp标准库中的reload函数: >>> from imp import ...