I have seen many references to AngularJS pre- and post-link functions in literature about AngularJS.
I am not sure however whether these can be customized or are internal to the framework.
In other words, as an AngularJS developper, can I provide my own pre and post link functions to my custom directives?
Angular provides the ability to create custom directives. A directive is basically a custom HTML attribute. It is a way to extend HTML vocabulary and modify the behavior of the DOM and your Angular application.
Pre-linking function Executed before the child elements are linked. Not safe to do DOM transformation since the compiler linking function will fail to locate the correct elements for linking. Post-linking function Executed after the child elements are linked.
link function is basically used to manipulate the DOM( Document Object Model ) element using custom directive. link option in custom directive registers DOM listener and also update the DOM.
Types of Directive in AngularJS There are two types of AngularJs directives: Built-in directive.
Yes you can, as per @Mikke's answer. To sum up, there are four ways to declare linking functions:
From within compile
specifying both preLink
and postLink
functions explicitly:
compile: function compile(tElement, tAttrs, transclude) {
return {
pre: function preLink(scope, iElement, iAttrs, controller) { ... },
post: function postLink(scope, iElement, iAttrs, controller) { ... }
}
}
From within compile
returning only postLink
implicitly:
compile: function compile(tElement, tAttrs, transclude) {
return function postLink( ... ) { ... }
}
From within link
specifying both preLink
and postLink
explicitly:
link: {
pre: function preLink(scope, iElement, iAttrs, controller) { ... },
post: function postLink(scope, iElement, iAttrs, controller) { ... }
}
From withing link
using postLink
implicitly:
link: function postLink( ... ) { ... }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With