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> ...
随机推荐
- 记一次【模拟点击】,WinForm小软件开发过程
前言 年初四月份的时候,有朋友找到我,说想开发一个模拟点击的软件.最终软件做完后,发现效果不理想.唯一开发的我是认为最好是放弃了,做运营的他,坚持说这个没问题,说是改变合作方式.最终也是不了了之了. ...
- 将Editplus添加到右键打开菜单
因为自己一直用Editplus作为文本打开工具,新的电脑将压缩文件复制了过来,但是没有右键打开了. 第一打开注册表 在命令框中输入regedit 第二在注册表中输入选项 如下图所示在下拉菜单中新建Ed ...
- 洗礼灵魂,修炼python(1)--python简介
首先,本人也是刚接触python短短几个月,没有老鸟的经验和技能,大佬勿喷,以下所有皆是本人对python的理解 python,是一种解释型(高级)的,面向对象的,带有动态语义的高级程序设计的开源语言 ...
- 分享基于分布式Http长连接框架--架构模型
我画了个简单的架构图来帮助说明: 其实为发布订阅架构模式. 生产者和消费者我们统一可理解为客户端,消息中间件可认为是服务端. 生产者和消费者做为客户端要跟服务端交互,则先通过代理订阅服务端,订阅成功后 ...
- spring框架总结(01)
1.spring是什么? sprint其实就是一个开源框架,是于2003年兴起的一个轻量级的java开发框架,是有Road Johnson创建的,简单的来说spring是一个分层的JavaSE/EE( ...
- 移动WEB 响应式设计 @media总结
第一种: 在引用样式的时候添加 <link rel="stylesheet" media="mediatype and|not|only (media featur ...
- 嵌入式linux开发之工具------tftp
我在嵌入式linux开发中用到tftp的地方主要有2个方面: 1.是在嵌入式目标板启动时,bootloader启动时通过uEnv文件,下载dtb文件和kernel文件: 2.是在嵌入式目标板启动后,通 ...
- Java历程-初学篇 Day09 冒泡排序
冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是 ...
- RuntimeError: Python is not installed as a framework 错误解决办法
因为我是macbook,mac是自带的python 2.7,但是我开发需要使用到的是python3,所以先使用pip3 install matplotlib 然后在交互页面键入import matpl ...
- Java爬虫
作为一位Java爬虫的初学者,分享一下自己的心得.所用到的jar包 org.codehaus.jettison.jar jsoup-1.7.3.jar个人认为爬虫的实现机制:获取Docume对象-&g ...