<html lang="en" ng-app="Demo"> <head> <meta charset="utf-8"> <title>Directive Html</title> <script src="angular.min.js"></script> <script type="text/javascript"> //controller 这个参数。这个参数的作用是提供一个 controller 的构造函数,它会在 compile 函数之后, link 函数之前被执行。 var app = angular.module('Demo', [], angular.noop); app.directive('a', function(){ var func = function(){ console.log('compile'); return function(){ console.log('link'); } } var controller = function($scope, $element, $attrs, $transclude){ console.log('controller'); console.log($scope); var node = $transclude(function(clone_element, scope){ console.log(clone_element); console.log('--'); console.log(scope); }); console.log(node); } return { compile: func, controller: controller, transclude: true, restrict: 'E' } }); angular.bootstrap(document, ['Demo']); </script> </head> <body> <a>haha</a> </body> </html>