(function(module) {module.controller("myctrl",["$scope", function($scope) { console.log("A"); $scope.A = "A"; }]); module.factory("thefactory",["$http","xyz", function($http, xyz) { console.log("B"); }]); module.directive("my-directive", function() { return { template: "

Hello World

" }; }); module.directive("myPane", function() { return { require: '^myTabs', restrict: 'E', transclude: true,"controller":["$scope","ttt", function($scope, ttt) { console.log("hah"); }], scope: { title: '@' }, link: function(scope, element, attrs, tabsCtrl) { tabsCtrl.addPane(scope); }, templateUrl: 'paneid', }; });module.directive("myTabs", function() { return { restrict: "E", transclude: true, scope: {},"controller":["$scope", function($scope) { var panes = $scope.panes = []; $scope.select = function(pane) { angular.forEach(panes, function(pane) { pane.selected = false; }); pane.selected = true; }; this.addPane = function(pane) { if (panes.length == 0) { $scope.select(pane); } panes.push(pane); }; }], "templateUrl": 'tabstemplateurl', }; }); module.run(['$templateCache', function($templateCache) { $templateCache.put("paneid","\u003cdiv class=\"tab-pane\" ng-show=\"selected\" ng-transclude\u003e\u003c/div\u003e\n\u003cbr\u003e\n"); $templateCache.put("tabstemplateurl","\u003cdiv class=\"tabbable\"\u003e\u003cul class=\"nav nav-tabs\"\u003e\u003cbr\u003e\n\u003cli ng-repeat=\"pane in panes\" ng-class=\"{active:pane.selected}\"\u003e\u003ca href=\"\" ng-click=\"select(pane)\"\u003e{{pane.title}}\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"tab-content\" ng-transclude\u003e\u003c/div\u003e\n\u003c/div\u003e\n"); }]); })(angular.module("mod1",[])); Added by mini