This question使用指令定义中的compile属性提供有关预链接和后链接的信息。但是,它没有说明直接使用link属性意味着什么。我在谈论这两件事之间的区别:
A:
myApp.directive('log', function() {
return {
link: function(...){...},
// other stuff here
};
});
B中。
myApp.directive('log', function() {
return {
compile: function(...){
return {
pre: function preLink( scope, element, attributes ) {
// stuff
},
post: function postLink( scope, element, attributes ) {
// stuff
}
}
},
// other stuff here
};
});
什么是link
功能?它应该结合前后?我不明白如何以不同的方式使用这两种模式。
答案 0 :(得分:3)
没有功能差异 - 只是API“糖”:
link: function postlink(){...}
是以下的API快捷方式:
link: {
post: function postlink(){...}
}
,其完整形式为:
link: {
pre: function prelink(){...},
post: function postlink(){...}
}
,它本身就是
的捷径compile: function(){
return {
pre: function prelink(){...},
post: function postlink(){...}
};
}
,可以稍微简化为:
compile: function(){
return function postlink(){...}
}
指定compile
属性时,将忽略link
属性。
这是关于主题的Angular documentation