如何创建可从所有控制器访问的某种utils捆绑包?
我的主模块中有以下路由代码:
'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。
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会为您注入它(请阅读Dependency Injection ..了解此处的情况。)