创build通用控制器function
如何创build一些可以从我的所有控制器访问的utils bundle?
我在主模块中有这个路由代码:
'use strict'; angular.module('lpConnect', []). config(['$routeProvider', function($routeProvider) { $routeProvider. when('/home', {template: 'views/home.html', controller: HomeCtrl}). when('/admin', {template: 'views/admin.html', controller: AdminCtrl}). when('/connect', {template: 'views/fb_connect.html', controller: MainAppCtrl}). otherwise({redirectTo: '/connect'}); }]);  我想要一个HomeCtrl , AdminCtrl和MainAppCtrl通用的函数。 
我应该怎么做AngularJS?
定义公用代码的方法是通过服务。
你可以这样定义一个新的服务:
 .factory('CommonCode', function ($window) { var root = {}; root.show = function(msg){ $window.alert(msg); }; return root; }); 
在你的控制器,你会注入这个服务..就像这样
 function MainAppCtrl($scope,CommonCode) { $scope.alerter = CommonCode; $scope.alerter.show("Hello World"); } 
只需将CommonCode作为参数添加到您的控制器函数中即可。Angular会为您注入它(请参阅Dependancy Injection ..以了解此处发生了什么)。
 只是为了更新以前的答案(它只是定义了什么factory ),有3种方法在AngularJS中注入依赖关系 (定义公共代码): 
- 供应商
- 工厂
- 服务
我不会谈论提供程序,因为这是一种更费力的dependency injection方法。 但是, 这个页面很好地解释了它们是如何工作的。
从技术上讲, 服务和工厂是用于同样的事情。 事实certificate,一个服务是一个构造函数,而一个工厂则不是。
从这个职位 :
 module.service( 'serviceName', function ); 
将
serviceName声明为注入参数时,将为您提供该函数的一个实例 。
 module.factory( 'factoryName', function ); 
将
factoryName声明为注入参数时,将提供通过调用传递给module.factory 的函数引用返回的值 。
你可以使用你喜欢的,并获得相同的结果 。
 这里有两个代码通过service先做完全相同的事情,然后是factory : 
服务语法
 app.service('MyService', function () { this.sayHello = function () { console.log('hello'); }; }); 
工厂语法
 app.factory('MyService', function () { return { sayHello: function () { console.log('hello'); } } });