This function that we just set up is what's called a link function, and it's actually a very small part of a larger API. If I cut this and instead I return an object and it has a property of link with that function, you'll see that this will behave the exact same way. Now this object that we are returning here is called the directive definition object, or DDO if you want an acronym for it. There's plenty of things on here for you to configure.
var egghead = angular.module("egghead", []); egghead.controller("AppCtrl", function () { var app = this; app.message = "Hello"; }) egghead.directive("myFirstDirective", function () { return function (scope, element, attrs) { element.text(scope.app.message + " " + attrs.message); } })
TO:
var egghead = angular.module("egghead", []); egghead.controller("AppCtrl", function () { var app = this; app.message = "Hello"; }) egghead.directive("myFirstDirective", function () { return { link: function (scope, element, attrs) { element.text(scope.app.message + " " + attrs.message); } } })
There are many other definitions can put here.
Read More:
https://docs.angularjs.org/guide/directive