/* use strict */ var app = angular.module('MyApp', []) app.controller('MainController', function ($scope) { $scope.labelName = "New Button"; $scope.newElement = angular.element('
' + $scope.labelName + '
'); }) .directive('pageDirective', function () { return { restrict: 'E', template: '
Here is a new button
', controller: 'MainController', scope: '=', compile: function (tElem, tAttrs) { console.log('compile it. This is the original compiled DOM.'); debugger; return { pre: function preLink (scope, iElement, iAttrs) { console.log('pre'); iElement.html('
Now a panel
'); debugger; }, post: function postLink (scope, iElement, iAttrs) { console.log('post'); iElement.append(scope.newElement); debugger; } } } } }) .directive('pageDirectiveTwo', function () { return { restrict: 'E', template: '
Here is a second button
', controller: 'MainController', scope: '=', compile: function (tElem, tAttrs) { console.log('2 compile it. This is the original compiled DOM.'); debugger; return { pre: function preLink (scope, iElement, iAttrs) { console.log('2 pre'); debugger; }, post: function postLink (scope, iElement, iAttrs) { console.log('2 post'); iElement.append(scope.newElement); debugger; } } } } }) .directive('pageDirectiveThree', function () { return { restrict: 'E', template: '
Here is a third button
', controller: 'MainController', scope: '=', compile: function (tElem, tAttrs) { console.log('3 compile it. This is the original compiled DOM.'); debugger; return { pre: function preLink (scope, iElement, iAttrs) { console.log('3 pre'); debugger; }, post: function postLink (scope, iElement, iAttrs) { console.log('3 post'); debugger; } } } } })