AngularJS应用的模块中有很多方法可以使用,其中directive()这个方法是用来定义指令的: 不急,首先要注意下指令的名字,先看个简单例子: 尽管在上面的的代码片段中我们定义了一个命名为myDirective...如果一个元素上具有两个优先级相同的指令,声明在前面的那个会被优先调用。如果其中一个的优先级更高,则不管声明的顺序如何都会被优先调用:具有更高优先级的指令总是优先运行。...* 父级作用域绑定:通过&符号可以对父级作用域进行绑定,以便在其中运行函数 transclude(布尔值Boolean) 可选,默认为false 可以将整个模板,包括其中的指令通过嵌入全部传入一个指令中...: \$scope: 与指令元素相关联的当前作用域 \$element: 当前指令对应的元素 \$attrs: 由当前元素的属性组成的对象 \$transclude: 嵌入链接函数会与对应的嵌入作用域进行预绑定...require(字符串String | 数组Array) 字符串或数组元素的值是会在当前指令的作用域中使用的指令名称。
2.ng-app作用:告诉子元素指令是属于angularJs。 3.ng-app的值可以为空(练习),项目中一定要赋值,后面所说的模块。...ng-model 指令把元素值(比如输入域的值)绑定到应用程序。...ng-repeat 指令会重复一个 html 元素(其实相对于 v-for 做一个循环遍历数组中的参数) <div ng-app="" ng-init="names=[ {name:'Jani',country...$transclude) {}, //作用域 值为{}时创建全新的隔离作用域, 值为string时为控制器名称 restrict: 'AE', // E = Element, A =...值为true时优先级低于此指令的其它指令无效 link:function // 值为函数 用来定义指令行为从传入的参数中获取元素并进行处理 }; }]).directive
2) 当调用 $digest 的时候,只触发当前作用域和它的子作用域上的监控,但是当调用 $apply 的时候,会触发作用域树上的所有监控。 什么时候手动调用 $apply() 方法?...ng-repeat迭代数组的时候,如果数组中有相同值,会有什么问题,如何解决? 会提示 Duplicates in a repeater are not allowed....详述angular的“依赖注入” AngularJS 是通过构造函数的参数名字来推断依赖服务名称的,通过 toString() 来找到这个定义的 function 对应的字符串,然后用正则解析出其中的参数...$dom.appendTo('body'); }) 通过$compile服务可以编译html字符串或dom对象或jqLite对象,然后得到一个编译函数,再传入$scope,就会在当前作用域进行编译...编译模板后如何获取编译后的模板内容并将其转成字符串
Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带。 Scope 是一个对象,有可用的方法和属性。 Scope 可应用在视图和控制器上。...---- 如何使用 Scope 当你在 AngularJS 创建控制器时,你可以将 $scope 对象当作一个参数传递: AngularJS 实例 控制器中的属性对应了视图上的属性: 作用域 scope,所以处理起来比较简单,但在大型项目中, HTML DOM 中有多个作用域,这时你就需要知道你使用的 scope 对应的作用域是哪一个。...,这里对应的是一个字符串, 并使用变量 x 表示。...---- 根作用域 所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中。 $rootScope 可作用于整个应用中。
terminal:Boolean,布尔型 作用:让angularJS停止在 当前元素 上比 本定义的指令 优先级 低 的所有 指令,相同优先级的指令还会执行 可以参考:ngView 和...,参数为:tElement,tAttrs 返回值是:代表模板的字符串 参数中:tElement,tAttrs 的t代表 template 是相对于 instance 的 作用:就是将多个DOM元素封装在一起...如果模板字符串中含有多个DOM元素,或者只有一个单独的文本节点构成,那他必须被包含在一个父元素内部 换句话说 必须存在一个跟DOM元素 举个例子: 作用域的问题 templateUrl:String,字符串【也可以是函数】 字符串:代表外部HTML文件路径的字符串 一般通过ajax 请求HTML模板文件 【函数:一个可以接收两个参数的函数...参数可选,可以被设置为true 默认是false 或者设置为一个对象 作用:当设置为true时候,会从父作用域继承并创建一个新的作用域 新的作用域代表了什么意思,代表了它是独立的 关于这点 下篇文章详细讲解
属性即说明整个都是AngularJS脚本作用域。...标签,该标签即定义了AngularJS应用的作用域。...· 手机的数据此时与注入到我们控制器函数的作用域($scope)相关联。当应用启动之后,会有一个根作用域被创建出来,而控制器的作用域是根作用域的一个典型后继。...AngularJS的作用域理论非常重要:一个作用域可以视作模板、模型和控制器协同工作的粘接器。AngularJS使用作用 域,同时还有模板中的信息,数据模型和控制器。...想要更加深入理解AngularJS的作用域,请参看AngularJS作用域文档。 2.5 测试 测试 “AngularJS方式”让开发时代码测试变得十分简单。
面试官追问什么时候触发 $digest 循环,答表单元素内容变化、Ajax 请求响应、点击按钮执行的函数等。...angular 的依赖注入原理 得到模块的依赖项实的核心 api 是 Function.prototype.toString,对一个函数执行 toString,它会返回函数的源码字符串,这样我们就可以通过正则匹配的方式拿到这个函数的参数列表...因为有流 ID,所以通过同一个 HTTP 请求实现多个 HTTP 请求传输变成了可能,可以通过流 ID 来标示究竟是哪个流从而定位到是哪个 HTTP 请求 HTTP2 头部压缩。...激活:Service Worker 对它作用域内的所有页面进行控制,fetch 用于拦截用户请求并响应,返回 Promise 对象,成功安装 Service Worker 后,当用户下次再进入页面,返回已返回的文件...API,如何截获参数,比如 xml 对象的 open 方法会传入 url,method,headers 参数,现在需要截获 headers 添加一些自定义的属性,怎么做?
1 常用$服务 1.1 $scope scope是angularJS中的作用域(其实就是存储数据的地方),很类似javascript的原型链 。...搜索的时候,优先找自己的scope,如果没有找到就沿着作用域链向上搜索,直至到达根作用域rootScope。..., PUT url: 字符串,请求的目标 params: 字符串或者对象,会被转换成为查询字符串追加的url后面 data: 在发送post请求时使用,作为消息体发送到服务器 ...headers: 一个列表,每个元素都是一个函数,返回http头 xsrfHeaderName(字符串):保存XSFR令牌的http头的名称 xsrfCookieName: 保存XSFR...$httpProvider 中有一个 interceptors 数组,而所谓拦截器只是一个简单的注册到了该数组中的常规服务工厂。
表单与表单元素都需要通过name引用,请注意设置name的值。获得错误的详细参数可以在示例中看到。 示例代码: <!...指令可以分为: a)、内置指令:支持AngularJS功能的指令、扩展表单元素的指令、把作用域绑定到页面元素的指令 b)、自定义指令,增加与扩展出新的指令。 ng-app这样的标记我们称之为指令。...3.2.2、ng-class-even与ng-class-odd AngularJS模板使你可以把该作用域内的数据直接绑定到所显示的HTML元素 ng-class-even与ng-class类似,ng-repeat...3.2.5、ng-switch 根据作用域表达式动态切换把那个DOM元素包含在已经编译的模板中。... transclude:是否可以访问内部作用域以外的作用域 scope:指定内部作用域 link:链接函数 controller:定义控制器来管理指令作用域和视图
一、服务 AngularJS功能最基本的组件之一是服务(Service)。服务为你的应用提供基于任务的功能。服务可以被视为重复使用的执行一个或多个相关任务的代码块。...document 浏览器的document元素的jQuery包装 $rootScope 根作用域的访问 $rootElement 根元素的访问 $cacheFactory 提供键/值对放置到对象缓存 $...1.1.3、AngularJS Crome插件 AngularJS Batarang是一个显示AngularJS的scope 层次的Chrome插件,有效的快速查看一个page 中有多少Scope能够帮助我们快速方便调试...1.2、自定义服务 AngularJS在内置服务中提供了大量的功能,不过这些服务不一定能满足你的需求,你可以通过自定义服务解决。可以将服务看作一个或多个相关任务的一块可重用代码。...二、路由 单页Web应用由于没有后端URL资源定位的支持,需要自己实现URL资源定位。angularjs使用浏览器URL "#" 后的字符串来定位资源,区分不同的功能模块。
上篇《AngularJS入门心得3——HTML的左右手指令》初步介绍了指令的概念和作用。...已经和指令打过一个照面,就不会那么陌生了,今天主要介绍的是一个困扰了我很久终于想通的问题,这个问题与scope有关,可以看做是《AngularJS入门心得1——directive和controller如何通信...指令的内部可以访问外部指令的作用域,并且模板也可以访问外部的作用域对象。为了将作用域传递进去,scope参数的值必须通过{}或true设置成隔离作用域。...如果没有设置scope参数,那么指令内部的作用域将被设置为传入模板的作用域。 ...这时,没有scope作用域,表示是共享作用域。
4-控制器和过滤器 angular1.x 学习目录 1-angular 学习导航和基础 2-表达式和指令,数据绑定 3-模型和作用域 scope 4-控制器和过滤器 基本 AngularJS 应用程序被控制器控制...控制器的 $scope (相当于作用域、控制范围)用来保存AngularJS Model(模型)的对象。 控制器在作用域中创建了两个属性 (firstName 和 lastName)。...ng-model 指令绑定输入域到控制器的属性(firstName 和 lastName)。...,配合 $scope 来使用就类似 JavaScript 的作用域。...' }} 自定义过滤器 -- 多参数 具体的操作就是在调用的时候用":参数" 的格式在后面追加即可 var app = angular.module('myApp', []); app.controller
,其中,允许传入的参数ele的类型是“HTML string or DOMElement to be wrapped into jQuery.”一般传入参数DOMElement。...angular.element:将DOM元素或者HTML字符串一包装成一个jQuery元素。...如果提供一个选择器,那么只有紧跟着的兄弟元素满足选择器时,才会返回此元素 on() - 在选定的元素上绑定一个或多个事件处理函数 off() - 移除一个事件处理函数 one() - 为元素的事件添加处理函数...removeAttr()-为匹配的元素集合中的每个元素中移除一个属性(attribute) removeClass()-移除集合中每个匹配元素上一个,多个或全部样式 removeData()-在元素上移除绑定的数据...replaceWith()-用提供的内容替换集合中所有匹配的元素并且返回被删除元素的集合 text()-得到匹配元素集合中每个元素的合并文本,包括他们的后代 toggleClass()-在匹配的元素集合中的每个元素上添加或删除一个或多个样式类
$scope中有isChecked与没有isChecked的区别 ngModel 会尝试使用表达式的计算结果来绑定到当前域上的属性...这个指令有三种使用方式,这三种方式取决于表达式计算结果: 如果表达式结果为字符串,则字符串为使用空格分隔的一个或多个类名。...如果表达式结果为一个数组,则数组中每个元素为使用空格分隔的一个或多个类名字符串。 如果表达式结果为一个对象,对象中的每个key-value中如果键值为真时则键名作为类名。...,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素 arrayObj.slice(start, [end]); 将多个数组(也可以是字符串,或者是数组和字符串的混合...,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
$scope中有isChecked与没有isChecked的区别 ngModel 会尝试使用表达式的计算结果来绑定到当前域上的属性...2.6、事件 angularjs的内置指令中有许多封装好的事件指令,如下所示: ? 示例: <!...这个指令有三种使用方式,这三种方式取决于表达式计算结果: 如果表达式结果为字符串,则字符串为使用空格分隔的一个或多个类名。...如果表达式结果为一个数组,则数组中每个元素为使用空格分隔的一个或多个类名字符串。 如果表达式结果为一个对象,对象中的每个key-value中如果键值为真时则键名作为类名。...4.8、合并成字符 返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
2.理解控制器 在AngularJS的控制器中,构造函数会有$scope参数。...一个新的子作用范围(scope)将被创建,并作为一种可注入的参数传递给控制器的构造函数为$scope。...3.控制器的作用 3.1 在控制器中初始化模型(添加属性) 创建控制器并将它附加到DOM元素之后,AngularJS会创建一个子作用域。子作用域保存着对应控制器的数据模型。...AngularJS Controller Demo 4.控制器作用域 因为控制器是附加到DOM元素上,所以存在着一个视图,有多个控制器。控制器之间可以是并列的,也可以是嵌套的形式存在。...但是子级作用域和父级作用域中有相同的属性,子级使用自己的作用域。这个时候子级作用域要访问父级作用域的属性可以通过$parent。类似JavaScript本身的原型链方式。
XML 配置文件的根元素是,该元素下包含多个子元素。每个都定义了一个 bean ,并描述了该 Bean 如何被装配到 Spring 容器中。...其默认值是 singleton constructor-arg 元素的子元素,可以使用此元素传入构造参数进行实例化。...该元素的 index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型 property 元素的子元素,用于调用 Bean 实例中的 setter 方法来属性赋值,从而完成依赖注入...3.6 websocket 在web 环境下,同一个 websocket 共享一个 Bean 实例,该作用域在整个 websocket 中有效。...: 用来指定对应的构造函数 index: 若构造函数有多个参数的时候,可以使用index 属性指定参数的位置,给参数的位置进行排序 id="" class=""> <constructor-arg
AngularJS 作用域相关的一个坑(就是上文中 ng-if 产生一级作用域的坑,其实也是 javascript 原型链继承中值类型继承的坑。...原理 AngularJS 是通过构造函数的参数名字来推断依赖服务名称的,通过 toString() 来找到这个定义的 function 对应的字符串,然后用正则解析出其中的参数(依赖项),再去依赖映射中取到对应的依赖...,实例化之后传入。...(render); render(); 问题 因为 AngularJS 的 injector 是假设函数的参数名就是依赖的名字,然后去查找依赖项,那如果按前面栗子中那样注入依赖,代码压缩后(参数被重命名了..., iAttrs, controller) { … } iElement为编译后的element,已经与作用域关联起来,所以可以数据绑定 如果指令只进行DOM的修改,不进行数据绑定,那么配置在compile
= "myNoteCtrl"的作用域 ng-model 指令绑定了到控制器变量... 元素包含了 AngularJS 应用 (ng-app=)。 元素定义了 AngularJS 控制器的作用域 (ng-controller=)。 ...所有AngularJS 应用都必须要要一个跟元素。 HTML文档中只允许有一个ng-app 指令,如果有多个ng-app指令,则只第一个会被使用。 ...ng-bind-html 描述:绑定HTML元素的innerHTML 到应用的程序数据,并移除html 字符串中危险字符。 ...语法: 参数值: 值:expression 描述: 一个或多个要执行的表达式
领取专属 10元无门槛券
手把手带您无忧上云