使用AngularJS的多个配置提供程序

时间:2014-07-09 14:44:58

标签: angularjs

如何为AngularJS指定多个提供程序?

现在我在2个地方做这个,但这似乎不起作用:

var myApp = angular.module("myApp", ['ngRoute']);

// configure our routes
myApp.config(function($routeProvider) {
$routeProvider

  // route for the home page
  .when('/', {
    templateUrl : 'pages/home.html',
    controller  : 'mainController'
  })

  // route for the about page
  .when('/about', {
    templateUrl : 'pages/about.html',
    controller  : 'aboutController'
  })

  // route for the contact page
  .when('/contact', {
    templateUrl : 'pages/contact.html',
    controller  : 'contactController'
  });

});

myApp.config(function($interpolateProvider){
    $interpolateProvider.startSymbol('((').endSymbol('))');
}
);

1 个答案:

答案 0 :(得分:1)

使用单个函数引用:

myApp.config(foo)

注入每个提供者:

function foo($routeProvider, $interpolateProvider) 
 {     
 /* interpolateProvider configuration */
 $interpolateProvider.startSymbol('((').endSymbol('))');

 /* routeProvider configuration */
 $routeProvider
  .when('/', {
    templateUrl : 'pages/home.html',
    controller  : 'mainController'
  })
  .when('/about', {
    templateUrl : 'pages/about.html',
    controller  : 'aboutController'
  })
  .when('/contact', {
    templateUrl : 'pages/contact.html',
    controller  : 'contactController'
  });
 }

/* module creation */
var myApp = angular.module("myApp",[]);

/* provider binding */
myApp.config(foo);

/* Manual bootstrapping */
angular.bootstrap(document, ['myApp']);

 /* $inject Property Annotation */
 foo.$inject['$routeProvider', '$interpolateProvider'];
  

提供程序本质上是用于创建和配置AngularJS工件实例的对象。因此,为了注册一个惰性控制器,你可以使用$ controllerProvider。类似地,要注册指令,您将使用$ compileProvider来注册您将使用$ filterProvider的过滤器,并注册其他服务,您将使用$ provide服务。

<强>参考