在Angular JS documentation for $ compile中声明:
The nitty-gritty of compile and link functions inside AngularJS directives上的编译函数可以有一个返回值,可以是a 功能或对象。
返回(post-link)函数 - 相当于注册 当通过配置对象的link属性链接函数时 编译函数为空。
返回一个对象,其中包含通过pre和post注册的函数 properties - 允许您控制何时应该使用链接功能 在链接阶段调用。请参阅有关预链接的信息 下面的后连接功能。
基于作为返回对象的编译函数的示例:
function createDirective(name){
return function(){
return {
restrict: 'E',
compile: function(tElem, tAttrs){
console.log(name + ': compile');
return {
post: function(scope, iElem, iAttrs){
console.log(name + ': post link');
}
}
}
}
}
}
我对文档的解释是允许返回函数,并假设它是一个后链接函数,即以下内容是等效的:
function createDirective(name){
return function() {
return {
restrict: 'E',
compile: function(tElem, tAttrs){
console.log(name + ': compile');
return function(scope, iElem, iAttrs){
console.log(name + ': post link');
}
}
}
}
}
这是对的吗?
答案 0 :(得分:0)
根据提供的定义,这将是等效的:
function createDirective(name){
return function() {
return {
restrict: 'E',
link: function(scope, element, attrs){
}
}
}
}
如定义中所述,仅当compile为空时,返回post link与link相同...所以上面有link属性。您可以看到函数签名甚至是相同的,只是不同的变量名称。