angular内置provider之$compileProvider
一、方法概览
directive(name, directiveFactory)component(name, options)aHrefSanitizationWhitelist([regexp]);imgSrcSanitizationWhitelist([regexp]);debugInfoEnabled([enabled]);strictComponentBindingsEnabled([enabled]);onChangesTtl(limit);commentDirectivesEnabled(enabled);cssClassDirectivesEnabled(enabled);
二、方法解释
1、directive(name, directiveFactory)
使用compiler注册一个指令
参数:
name:string,指令的名称。
directiveFactory:function,指令构造工厂函数。
return:
返回自身,以供链式调用。
2、component(name, options)
使用compiler注册一个组件,组件是一种特殊的指令,它自包含了UI,并且总是默认使用独立作用域和restrict: 'E'。组件的定义是简单的,options是一个包含了一系列属性的对象,并且总是强制使用最好的实践,例如controllerAS:$ctrl。
参数:
name:组件的名称。
options:一个对象,包含以下可选的属性。
controller:string|function,指令的控制器,字符串代表一个被注入到该模块的控制器的名称。
controllerAS:string,控制器的一个引用,默认是’$ctrl‘,如果被定义则scope上会有一个该名称的属性,例如scope.$ctrl,那么我们在html中就可以这样使用控制器中的属性,例如<div>{{$ctrl.name}}<div>
template:string|function,组件的模板,如果是函数,则函数有以下两个参数,
$element:当前元素。
$attrs:当前元素属性对象。
templateUrl:string|function,组件模板的路径,如果是函数,则参数和以上template相同。
bindings:一个对象,用于元素的属性和组件属性之间的绑定,并且绑定的值总是绑定到组件的控制器上而不是scope上,详情请查阅bingToController。
transclude:boolean,是否允许嵌入内容,默认false。
require:一个对象,需要其他指令的控制器被绑定到组件的控制器,对象的键指向属性名称,对象的值是其他指令控制器的名称。
$...:额外的属性被添加到指令工厂函数和控制器构造器函数。(这被使用于为组件路由提供注解)
return:
返回自身,用于链式调用。
3、aHrefSanitizationWhitelist([regexp])
恢复或者覆盖白名单urls安全列表的正则表达式,主要用于阻止通过html链接进行的xss攻击。任何将要通过数据绑定到a[href]的urls首先都要经过初始化并转化为一个绝对url,如果这个url匹配aHrefSanitizationWhitelist的正则表达式规则,则会被添加到DOM中,否则转化后的url将会加上’unsafe:‘前缀后才能被加入到DOM中。
参数:
regexp:RegExp,新的白名单正则表达式。
return:
如果参数不存在则返回现在的正则表达式,否则返回自身以供链式调用。
4、imgSrcSanitizationWhitelist([regexp])
和以上aHrefSanitizationWhitelist类似,不过这个是设置img[src]的白名单正则表达式。
5、debugInfoEnabled([enabled])
主要用于开启和关闭运行时的debug信息,默认是true,例如为绑定的元素添加以下信息:
'ng-binding' CSS Class。
’ng-scope‘和’ng-isolated-scope‘ CSS Class。
’$binding‘一个数组,包含了绑定的表达式。
占位符注释将会包含是什么指令或者binding引发了这个占位符,例如<!-- ngIf: shouldShow() -->
参数:
enabled:boolean
return:
如果包含参数则返回自身,否则返回现在的debug状态。
6、strictComponentBindingsEnabled([enabled])
是否开启严格的component bindings检查,如果开启,则除了那些包含了?的bindings,全部都要求在html标签中指定相应的属性。
默认false
参数和返回值和以上debug相同。
7、onChangesTtl(limit)
在复杂的应用程序中,$onChanges钩子和bindings之间的依赖性可能会导致对这些钩子的多个调用迭代,该函数可以设置迭代的次数。
默认是10次。
参数:
limit:integer,迭代的次数。
return:
如果设置了limit则返回自身,否则返回已经设置的limit。
8、commentDirectivesEnabled(enabled)
表明是否编译注释形式的指令,如果禁用将会提高编译的性能,因为编译器不需要去检查注释当编译指令的时候。
默认是true,开启。
参数和返回值和onChangesTtl(limit)类似。
9、cssClassDirectivesEnabled(enabled)
表明是否编译Class形式的指令,如果禁用将会提高编译的性能,因为编译器不需要去检查Class当编译指令的时候。
默认是true,开启。
参数和返回值和onChangesTtl(limit)类似。
angular内置provider之$compileProvider的更多相关文章
- angular内置过滤器-filter
这篇文章来讲解一下angular内置的filter过滤器. 没错,这个过滤器的名字,就叫'filter',虽然自定义过滤器也是使用module.filter()...但是不要混淆了,这个filter就 ...
- angular内置指令相关知识
原文地址 https://www.jianshu.com/p/5a5b43a8e91f 大纲 1.angular指令的分类 2.angular指令之——组件 3.angular指令之——属性指令 (n ...
- Angular内置指令(一)
要注意的是不要把自己开发的指令以ng开头,以免与内置指令冲突 目录:ng-disabled,ng-readonly,ng-checked,ng-selected,ng-href,ng-src,ng- ...
- Angular内置指令
记录一下工作中使用到的一些AngularJS内置指令 内置指令:所有的内置指令的前缀都为ng,不建议自定义指令使用该前缀,以免冲突 1. ng-model 使用ng-model实现双向绑定,通过表单的 ...
- 简话Angular 03 Angular内置表达式大全
一句话: 大多数html标签属性和事件都有一个对应的ng指令 说明:这些指令和原生html最大的区别就是可以动态更新.比如一个div的样式用ng-class后,我们就可以随意应用css class. ...
- Angular——内置指令
内置指令 ng-app 指定应用根元素,至少有一个元素指定了此属性. ng-controller 指定控制器 ng-show控制元素是否显示,true显示.false不显示 ng-hide控制元素是否 ...
- Angular内置指令(二)
目录: $rootScope,ng-app,.run(),ng-include,ng-repeat,ng-if,ng-switch,ng-init ng-show/ng-hide,ng-model,n ...
- 夺命雷公狗—angularjs—25—angular内置的方法(高级)
查看版本信息 angular.version console.log(angular.version); 判断是否相等 angular.equals() var str1 = ''; var str2 ...
- Angular——内置服务
$location <!DOCTYPE html> <html lang="en" ng-app="App"> <head> ...
随机推荐
- mongodb 在windows下面进行分片
在mongodb里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内存就吃不消了,针对这样的场景我们该如何应对. 一:分片 mongo ...
- 添加事务后 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type available
今天遇到了一个奇怪的问题 在没添加事务之前 所有的代码都是好的 , 当我添加了事务之后, 代码报错 org.springframework.beans.factory.NoSuchBeanDef ...
- 开源API集成测试工具 Hitchhiker v0.1.3 - 参数化请求
Hitchhiker 是一款开源的 Restful Api 集成测试工具,你可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍请看: http://www.cnblogs.com/bro ...
- extract-text-webpack-plugin打包css后出现图片引用路径不对问题
在做项目过程中,发现引用了图片的less文件被extract-text-webpack-plugin打包过之后,里面的图片引用路径指向到了extract-text-webpack-plugin打包目录 ...
- BGP协议
BGP属于自治系统间路由协议.BGP的主要目标是为处于不同AS中的路由器之间进行路由信息通信提供保障.BGP既不是纯粹的矢量距离协议,也不是纯粹的链路状态协议,通常被称为通路向量路由协议.这是因为BG ...
- jvm系列(十):如何优化Java GC「译」
本文由CrowHawk翻译,是Java GC调优的经典佳作. 本文翻译自Sangmin Lee发表在Cubrid上的"Become a Java GC Expert"系列文章的第三 ...
- iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享
- LinearGradientBrush,RadialGradientBrush的样式说明
LinearGradientBrush 使用线性渐变绘制区域.线性渐变沿直线定义渐变.该直线的终点由线性渐变的 StartPoint 和 EndPoint 属性定义.LinearGradientBru ...
- 图片与字符串(base64编码)的转化
package com.demo; import java.util.*; import java.io.*; import sun.misc.BASE64Decoder; import sun.mi ...
- Weave Scope 多主机监控 - 每天5分钟玩转 Docker 容器技术(81)
除了监控容器,Weave Scope 还可以监控 Docker Host. 点击顶部 HOSTS 菜单项,地图将显示当前 host. 与容器类似,点击该 host 图标将显示详细信息. host 当前 ...