AngularJS 指令
2016-03-18 16:51
447 查看
AngularJS 通过被称为 指令 的新属性来扩展 HTML。并且通过内置的指令来为应用添加功能。另外,AngularJS 允许我们自定义指令。
AngularJS为我们提供了很多指令,在前面我们也见到了一些,如:
AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-。
这是之前的一个示例,使用
为应用程序数据提供类型验证(number、email、required)。
为应用程序数据提供状态(invalid、dirty、touched、error)。
为 HTML 元素提供 CSS 类。
绑定 HTML 元素到 HTML 表单。
我们可以使用 .directive 函数来添加自定义的指令。要调用自定义指令,HTMl 元素上需要添加自定义指令名。我们需要使用驼峰法来命名一个指令, 例如:
我们可以通过元素名、属性、类名、注释来调用指令。
E 只限元素名使用
A 只限属性使用
C 只限类名使用
M 只限注释使用
AngularJS为我们提供了很多指令,在前面我们也见到了一些,如:
ng-app、’ng-bind’等。AngularJS提供的指令我们可以查阅官网的文档,这里就不一一列举了,下面介绍几个比较常用的指令的用法,其他指令的使用也大同小异。
AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-。
ng-app 指令
在之前的代码中,我们可以发现每一个AngularJS的代码里都含有ng-app指令。
ng-app指令定义了 AngularJS 应用程序的 根元素。在网页加载完毕时会自动引导(自动初始化)应用程序。
ng-init 指令
ng-init指令为 AngularJS 应用程序定义了 初始值。通常情况下,我们不使用
ng-init。我们将使用一个控制器或模块来代替它。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>AngularJS</title> <script type="text/javascript" src="js/angular.min.js"></script> </head> <body ng-app="" ng-init="color=['red', 'blue', 'green']"> <div> {{color[1]}} </div> </body> </html>
这是之前的一个示例,使用
ng-init指令初始化了一个名为color的数组。
ng-model 指令
ng-model指令 绑定 HTML 元素 到应用程序数据。另外
ng-model指令也可以:
为应用程序数据提供类型验证(number、email、required)。
为应用程序数据提供状态(invalid、dirty、touched、error)。
为 HTML 元素提供 CSS 类。
绑定 HTML 元素到 HTML 表单。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>AngularJS</title> <script type="text/javascript" src="js/angular.min.js"></script> </head> <body ng-app=""> <div> <input type="text" ng-model="msg" /> </div> <div> {{msg}} </div> </body> </html>
ng-repeat 指令
ng-repeat指令对于集合中(数组中)的每个项会 克隆一次 HTML 元素。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>AngularJS</title> <script type="text/javascript" src="js/angular.min.js"></script> </head> <body ng-app="" ng-init="color=['red', 'blue', 'green']"> <div> <ul> <li ng-repeat="x in color">{{x}}</li> </ul> </div> </body> </html>
自定义的指令
除了 AngularJS 内置的指令外,我们还可以创建自定义指令。我们可以使用 .directive 函数来添加自定义的指令。要调用自定义指令,HTMl 元素上需要添加自定义指令名。我们需要使用驼峰法来命名一个指令, 例如:
myDirective, 但在使用它时需要以
-分割,
my-directive。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>AngularJS</title> <script type="text/javascript" src="js/angular.min.js"></script> </head> <body ng-app="myApp"> <my-directive></my-directive> <script> var app = angular.module("myApp", []); app.directive("myDirective", function() { return { template: "<h1>自定义指令!</h1>" }; }); </script> </body> </html>
我们可以通过元素名、属性、类名、注释来调用指令。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>AngularJS</title> <script type="text/javascript" src="js/angular.min.js"></script> </head> <body ng-app="myApp"> <my-directive></my-directive> <div my-directive></div> <div class="my-directive"></div> <!-- directive: my-directive --> <script> var app = angular.module("myApp", []); app.directive("myDirective", function() { return { restrict : "EACM", replace : true,// template: "<h1>自定义指令!</h1>" }; }); </script> </body> </html>
限制使用
我们可以限制我们的指令只能通过特定的方式来调用。通过添加restrict属性来限制,例如:设置
restrict值为 “A”, 则指令只能通过属性的方式来调用。
restrict值可以是以下几种:
E 只限元素名使用
A 只限属性使用
C 只限类名使用
M 只限注释使用
restrict默认值为 EA, 即可以通过元素名和属性名来调用指令。
相关文章推荐
- AngularJS基础教程之简单介绍
- AngularJS中处理多个promise的方式
- jsp中page指令用法详解
- APACHE的AcceptPathInfo指令使用介绍
- jsp的常用指令有哪些(编译指令/动作指令整理)
- 深入学习JavaScript的AngularJS框架中指令的使用方法
- angularJS 中$attrs方法使用指南
- 深入浅析AngularJS和DataModel
- 简述AngularJS相关的一些编程思想
- AngularJS的一些基本样式初窥
- 简单讲解AngularJS的Routing路由的定义与使用
- 创建你的第一个AngularJS应用的方法
- 详解AngularJS中的作用域
- Angular发布1.5正式版,专注于向Angular 2的过渡
- 简介AngularJS的视图功能应用
- AngularJS语法详解
- AngularJS 2.0新特性有哪些
- AngualrJS中的Directive制作一个菜单
- 在AngularJS框架中处理数据建模的方式解析
- angularJS与bootstrap结合实现动态加载弹出提示内容