$compile
这是个编译服务。编译一段HTML字符串或者DOM的模板, 产生一个将scope和模板连接到一起的函数。
编译服务主要是为指令编译DOM元素,下面的一大段也是主要介绍指令的。
下面是一个被声明的带指令定义对象的指令的示例:
var myModule =angular.module(...);
myModule.directive('directiveName', [“injectables”,…,functionfactory(injectables,…) {
var directiveDefinitionObject ={
priority: 0,
template: '
//or
//templateUrl: 'directive.html', // or // function(tElement, tAttrs) { ... },
replace: false,
transclude: false,
restrict: 'A',
scope: false,
controller: function($scope, $element, $attrs, $transclude, otherInjectables) { ... },
controllerAs: 'stringAlias',
require: 'siblingDirectiveName', //or // ['^parentDirectiveName', '?optionalDirectiveName', '?^optionalParent'],compile: functioncompile(tElement, tAttrs, transclude) {
return{
pre: functionpreLink(scope, iElement, iAttrs, controller) { ... },
post: functionpostLink(scope, iElement, iAttrs, controller) { ... }
}
//or
//return function postLink( ... ) { ... }
},
//or
//link: {
//pre: function preLink(scope, iElement, iAttrs, controller) { ... },
//post: function postLink(scope, iElement, iAttrs, controller) { ... }
//}
//or
//link: function postLink( ... ) { ... }
};
returndirectiveDefinitionObject;
});
这是一个完整的指令,所返回的对象的各项属性都写在上面了,下面对于指令对象属性的介绍,就不一一的写示例代码了,后面主要写下简单的就ok。
备注:任何为指定的参数都将设置为默认值。下面将会列出各默认值。
指令定义对象
指令定义的对象为编译器提供说明,其属性是:
priority
当有一个DOM元素中定义了多个指令,有时有必要指定的指令的应用顺序。在