AngularJS -- 指令(创建自定义指令)

什么是指令

注:本指南是针对已经熟悉AngularJS基础知识的开发人员。如果你才刚刚开始,我建议查看系列教程

指令是一个Dom元素上的标签(和元素上的属性, CSS 类样式一样,属于这个Dom元素),它告诉AngualrJS的HTML 编译器($compile),去附加一个行为到这个Dom元素上去,这个行为可以改变这个Dom元素,或者这个Dom元素的子元素。

AngularJS 有一套自己内置的指令,如:ngBind,ngModel,ngClass等等...你可以自定义的指令。当Angular应用程序起来之后,会先去加载Dom树,然后去匹配你的指令,然后执行。

HTML 编译器 -- 对于Angularjs来说,编译意味着递归去给HTML添加一些事件监听,让DOM元素和Angualr之间可以进行交互,相互作用。这里使用编译这个术语的原因是:添加事件监听这个过程,刚好反应了我们C#,Java等编程语言将源代码编译成应用的这个过程。

匹配指令

在我们编写我们的第一个自定义指令之前,我能需要知道AngularJS的HTML编译器是怎么确定在什么时候使用我们自定义的指令的。

下面这个例子中,我们可以看到<Input>元素匹配到了 ngModel 这个指令。

<input ng-model="foo">

      下面这个例子也是匹配到了 ngModel 这个指令:

<input data-ng:model="foo">

       AngularJS使用元素标签类型(eg:input)和属性名称来确定哪个元素匹配到了哪个指令。标准的指令(eg: ngModel)是区分大小写的,使用了驼峰命名法则。然而,由于HTML是不区分大小写的,所以后来也不区分大小写了…(感觉等于没说…) 但是通常我们都是使用  [-]  这个破折号来代表一个指令(通常,并不是必须)。

       一般的使用方法如下:

1.使用  x-  或者  data-  在元素或者属性前。

2.使用  : 或者  - 或者 _ 来代替了驼峰命名法则。

<div ng-app="docsBindExample">
  <div ng-controller="Controller">
    Hello <input ng-model=‘name‘> <hr/>
    <span ng-bind="name"></span> <br/>
    <span ng:bind="name"></span> <br/>
    <span ng_bind="name"></span> <br/>
    <span data-ng-bind="name"></span> <br/>
    <span x-ng-bind="name"></span> <br/>
  </div>
</div>
<script src="https://code.angularjs.org/1.3.0/angular.min.js"></script>
<script type="text/javascript">
  (function(){
    angular.module(‘docsBindExample‘, [])
  .controller(‘Controller‘, [‘$scope‘, function($scope) {
    $scope.name = ‘Max Karl Ernst Ludwig Planck (April 23, 1858 – October 4, 1947)‘;
  }]);
})();
</script>

效果图:

时间: 2024-10-08 19:43:43

AngularJS -- 指令(创建自定义指令)的相关文章

带你走近AngularJS - 创建自定义指令

为什么使用AngularJS 指令? 使用过 AngularJS 的朋友应该最感兴趣的是它的指令.现今市场上的前端框架也只有AngularJS 拥有自定义指令的功能,并且AngularJS 是目前唯一提供Web应用可复用能力的框架. 目前有很多JavaScript 产品提供插件给Web开发人员.例如, Bootstrap 就是当前比较流行的提供样式和JavaScript插件的前端开发工具包.但是开发人员在使用Booostrap中的插件时, 必须切换到JavaScript 模式来写 jQuery

Angular中的内置指令和自定义指令

NG中的指令,到底是什么(what)? 为什么会有(why)?以及怎样使用(how)? What: 在NG中,指令扩展HTML功能,为 DOM 元素调用方法.定义行为绑定数据等. Why: 最大程度减少DOM操作,实现数据绑定,与业务逻辑进行交互. How: 指令主要分为两种:内置指令和自定义指令,通过下面的例子,简单记录一下如何去使用. 内置指令 在官方API文档上罗列了很多指令,内置指令可以分为:普通指令 和 事件指令,他们都是作用于HTML之上的,通过添加属性的方式来实现的.简单看一下一些

【AngularJS】—— 8 自定义指令

AngularJS支持用户自定义标签属性,在不需要使用DOM节点操作的情况下,添加自定义的内容. 前面提到AngularJS的四大特性: 1 MVC 2 模块化 3 指令 4 双向数据绑定 下面将会介绍如下的内容: 1 如何自定义指令 2 自定义指令的使用 3 自定义指令的内嵌使用 如何自定义指令: Angular是基于模块的框架,因此上来肯定要创建一个自己的模块: var myAppModule = angular.module("myApp",[]); 然后在此模块基础上创建指令d

创建自定义指令(二)

一.使用嵌入包含 嵌入包含的意思是将一个文档的一部分通过引用插入到另一个文档中.在指令的上下文信息中,当你要创建一个可以包含任意内容的包装器指令时,这将十分有用. <script type="text/ng-template" id="template"> <div class="panel panel-default"> <div class="panel-heading"> <h4

angularJs工作日记-自定义指令Directive01

新项目组使用完善的angularMVVM设计思路架构,很庆幸能够来到这个项目组,在这里的每一天都能够学习到新的知识,为了防止以后忘记,记录一下个人的理解 首先接触最多的是directive,directive目前用到了以下几个属性, restrict,scope,link,templateUrl 首先是restrict:这个无需多说,用来定义自定义指令的使用形式,包括A属性,E标签,C是class,M是备注,最常用的就是EA,尤其是E可以在标签中使用自定义属性传参给父controller,或者定

angular创建自定义指令的四种方式

angular除了内置的部分指令,还可以通过.directive来自定义指令.要调用自定义指令,HTML 元素上需要添加自定义指令名.使用驼峰法来命名一个指令:nsHeader,在调用时使用需要-来分割:ns-header.自定义指令调用的的方式有四种,如下: 元素名 属性 类名 注释 1.使用元素名调用: 1 <!DOCTYPE html> 2 <html ng-app="myApp"> 3 <head> 4 <meta charset=&q

vue.js 学习四(指令和自定义指令)

官方的指令说明已经很简单了,这里再写一遍,也是自己加深一下印象 v-text 就是写入单纯的文本,可以忽略这个指令直接双花括号代替 <span v-text="msg"></span> <!-- 和下面的一样 --> <span>{{msg}}</span> v-html 更新元素的 innerHTML,如果取回的值里面包含了html的样式,可以使用这个指令. 以下抄写了官方注意事项,对于用户输入的HTML,显示的时候需要谨慎

vue内置指令与自定义指令

一.内置指令 1.v-bind:响应并更新DOM特性:例如:v-bind:href  v-bind:class  v-bind:title  v-bind:bb 2.v-on:用于监听DOM事件: 例如:v-on:click  v-on:keyup 3.v-model:数据双向绑定:用于表单输入等:例如:<input v-model="message"> 4.v-show:条件渲染指令,为DOM设置css的style属性 5.v-if:条件渲染指令,动态在DOM内添加或删除

Vue的土著指令和自定义指令

1.土著指令 当我开始学习Vue的时候,看官网的时候看到了"指令"两个字.我愣住了,what?指令是啥啊?后来继续往下看,像这种什么"v-for""v-show""v-if"都叫做指令.等到后来Vue玩的差不多了,开始写项目的时候发现,常见的指令也就那么几个,比如"v-if""v-show""v-model""v-for""v-bind&