一尘不染

如何在AngularJS中将服务注入app.config

angularjs

wikiApp.config(['$routeProvider','authService', 
  function($routeProvider,authService) {
var admin = authService.getLoggedin();

$routeProvider
    .when('/hjem',{
        templateUrl: 'partials/homeContent.html',
    admin: false
    })
  .when('/articles/:article',{
    templateUrl: 'partials/articles.html',
    admin: false
  })
  .when('/newArticle',{
    templateUrl: 'partials/postArticle.html',
    controller: 'articleController',
    admin: true
  })

authService.getLoggedin()返回false或true取决于用户是否登录。然后,我想不允许他们进入网址,如果不允许的话。

但是我收到此错误:错误:[$ injector:modulerr]由于以下原因无法实例化模块WikiApp:[$
injector:unpr]未知提供程序:authService


阅读 328

收藏
2020-07-04

共1个答案

一尘不染

在配置阶段,您只能要求提供程序($ routeProvider,$ locationProvider等),这意味着您 不能
注入任何其他实例,因此我建议在运行阶段注入服务,那里将有一个服务实例。

// configuration
app.config(function($routeProvider) {

});

//inject any instance 
 app.run(function($rootScope,authService) {
  var admin = authService.getLoggedin();

  $rootScope.$on('$routeChangeStart', function(next, current) { 
     // your logic here...
  }); 
});
2020-07-04