angularjs速成学习个人理解_7指令Directives
2017-10-18 22:48
330 查看
AngularJS 让我们可以继承HTML带有新的属性,这个功能叫做指令Directives
AngularJS 有一组内置的指令,可以为您的应用程序提供功能。
AngularJS 也让我们自定义自己的指令
AngularJS指令是用前缀ng的扩展HTML属性
通用的内置指令包括:
ng-app
ng-init
ng-bind
ng-controller
ng-model
ng-repeat
ng-click
ng-src
...
创建一个新的指令
新的指令用.directive function创建
当给一个directive,你必须用驼峰法命名(my test directive - myTestDirective)
但是当执行这个指令的时候,你必须用 特殊的名字 my-test-directive。
执行一个指令我们可以配置restrict如下:
E:代表可以修饰元素名字
A:代表可以修饰熟悉
C:代表可以修饰类
M:代表注释
默认是 EA
我们来看一下代码js创建一个指令myTestDirective
var myApp = angular.module("myApp", []);
myApp.directive("myTestDirective", function() {
return {
restrict: "A", //default: EA
//replace: true, //false: 注释是不可见的
template: "<h3>Hello Directive</h3>"
};
});
由于restrict:A是属性指令那么我们可以在html中引入
<div class="test-div">
<p class="my-test-directive"></p>
</div>
template: "<h3>Hello Directive</h3>"为标签中显示的内容:如图:
![](https://img-blog.csdn.net/20171018230818162?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGwwMjQ2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
整体代码如下:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>Directive - AngularJS Test</title>
<style type="text/css">
.test-div {margin:15px;padding:15px;border:1px solid #ccc;}
</style>
</head>
<body>
<div class="test-div">
<ul ng-init="users=[{firstName:'Neo',lastName:'Huang'},{firstName:'Shelly',lastName:'Lee'}]">
<li ng-repeat="user in users">
<p ng-if="$even" style="color:red;">{{$index+1}} : {{user.firstName + " " + user.lastName}}</p>
<p ng-if="$odd" style="color:blue;">{{$index+1}} : {{user.firstName + " " + user.lastName}}</p>
</li>
</ul>
</div>
<div class="test-div">
<my-test-directive></my-test-directive>
</div>
<div class="test-div">
<p my-test-directive></p>
</div>
<div class="test-div">
<p class="my-test-directive"></p>
</div>
<div class="test-div">
&l
4000
t;!-- directive: my-test-directive -->
</div>
<script type="text/javascript" src="static/js/angular-1.5.8.js"></script>
<script type="text/javascript">
var myApp = angular.module("myApp", []);
myApp.directive("myTestDirective", function() {
return {
restrict: "A", //default: EA
//replace: true, //false: 注释是不可见的
template: "<h3>Hello Directive</h3>"
};
});
</script>
</body>
</html>
AngularJS 有一组内置的指令,可以为您的应用程序提供功能。
AngularJS 也让我们自定义自己的指令
AngularJS指令是用前缀ng的扩展HTML属性
通用的内置指令包括:
ng-app
ng-init
ng-bind
ng-controller
ng-model
ng-repeat
ng-click
ng-src
...
创建一个新的指令
新的指令用.directive function创建
当给一个directive,你必须用驼峰法命名(my test directive - myTestDirective)
但是当执行这个指令的时候,你必须用 特殊的名字 my-test-directive。
执行一个指令我们可以配置restrict如下:
E:代表可以修饰元素名字
A:代表可以修饰熟悉
C:代表可以修饰类
M:代表注释
默认是 EA
我们来看一下代码js创建一个指令myTestDirective
var myApp = angular.module("myApp", []);
myApp.directive("myTestDirective", function() {
return {
restrict: "A", //default: EA
//replace: true, //false: 注释是不可见的
template: "<h3>Hello Directive</h3>"
};
});
由于restrict:A是属性指令那么我们可以在html中引入
<div class="test-div">
<p class="my-test-directive"></p>
</div>
template: "<h3>Hello Directive</h3>"为标签中显示的内容:如图:
整体代码如下:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>Directive - AngularJS Test</title>
<style type="text/css">
.test-div {margin:15px;padding:15px;border:1px solid #ccc;}
</style>
</head>
<body>
<div class="test-div">
<ul ng-init="users=[{firstName:'Neo',lastName:'Huang'},{firstName:'Shelly',lastName:'Lee'}]">
<li ng-repeat="user in users">
<p ng-if="$even" style="color:red;">{{$index+1}} : {{user.firstName + " " + user.lastName}}</p>
<p ng-if="$odd" style="color:blue;">{{$index+1}} : {{user.firstName + " " + user.lastName}}</p>
</li>
</ul>
</div>
<div class="test-div">
<my-test-directive></my-test-directive>
</div>
<div class="test-div">
<p my-test-directive></p>
</div>
<div class="test-div">
<p class="my-test-directive"></p>
</div>
<div class="test-div">
&l
4000
t;!-- directive: my-test-directive -->
</div>
<script type="text/javascript" src="static/js/angular-1.5.8.js"></script>
<script type="text/javascript">
var myApp = angular.module("myApp", []);
myApp.directive("myTestDirective", function() {
return {
restrict: "A", //default: EA
//replace: true, //false: 注释是不可见的
template: "<h3>Hello Directive</h3>"
};
});
</script>
</body>
</html>
相关文章推荐
- angularjs速成学习个人理解_9表单验证
- angularjs速成学习个人理解_8form中的下拉框
- angularjs速成学习个人理解_6$q服务的promise
- angularjs速成学习个人理解_3表达式filter过滤器的使用
- angularjs速成学习个人理解_5$http服务
- angularjs速成学习个人理解_4依赖注入
- cocos2d-x 【小菜在学习】锚点与位置个人理解笔记
- 个人在编程学习之路上的一点思考——暨个人对编程语言理解的变化
- 【Material Design学习研究 一】个人对Material Design的理解和看法!
- 个人简单的谈谈对于linux易用性的理解与学习方向
- 个人在编程学习之路上的一点思考——暨个人对编程语言理解的变化
- 读书笔记:机器学习实战(5)——章6的支持向量机代码和个人理解与注释
- 前言-关于学习OC还是学习Swift的个人理解
- JMS学习的个人理解笔记
- 学习常量中指针变量和它指向的实体的个人理解
- 个人总结如何学习新知识与对知识技术进行深入理解的方法
- 工厂模式学习个人理解
- 嵌入式学习的一些个人理解
- 个人学习-java-泛型理解