当前位置: 首页 > 面试题库 >

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

公西嘉玉
2023-03-14
问题内容
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


问题答案:

配置阶段,您只能要求提供程序($ 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...
  }); 
});


 类似资料:
  • 问题内容: 我写了一个AngularJS服务,我想对其进行单元测试。 我的app.js文件已注册: 我可以测试DI是否像这样工作: 这证明了可以通过DI框架创建服务,但是接下来我要对服务进行单元测试,这意味着要模拟注入的对象。 我该怎么做呢? 我试过将我的模拟对象放在模块中,例如 并将服务定义重写为: 但是后者似乎停止了DI所创建的所有服务。 有人知道我可以如何为单元测试模拟注入的服务吗? 谢谢

  • 问题内容: 是否可以在angularJS中将一个服务注入到另一个服务中? 问题答案: 是。遵循angularjs中的常规注入规则。 感谢@simon。最好使用数组注入以避免最小化问题。

  • 我有一些UserService对用户实体进行操作。我创建了自己的注释和ConstraintValidator类作为实现 我需要将UserService注入到ConstraintValidator中。而且,正如spring文档所说,在注册bean之后: 不幸的是,它对我没有作用。我在字段(在实现ConstraintValidator的类内)使用NullPointerException累加stackt

  • 问题内容: 我需要将两个对象注入。其中一个是的实例,我得到这样的信息: 那么如何在我的services.yml中声明呢?这是服务: 问题答案: 我找到了此链接,这对我有用:

  • 问题内容: 我已经用AngularJS编写了一个服务,但是我无法使其与角度种子处理方式一起使用。 控制器代码如下: 请注意,注释掉的部分工作正常,但我想像(推荐的)第二种方式来处理它。 我得到的错误是照片是未定义的,所以我的猜测是我传递(注入)它的方法是错误的,但是我找不到正确的方法 问题答案: 您需要定义服务: 一些参考: http://docs.angularjs.org/api/angula

  • 问题内容: 我已经定义了这样的服务: 我希望仅为新用户实例化我的服务(即当user.createdAt>今天)。 因此,如果用户是老用户,有没有办法有条件地注入我的服务或至少销毁我的服务而没有任何副作用。 问题答案: 如果需要,您可以使用该服务动态获取可注射对象: 这是完整运行的演示:http : //jsbin.com/bemakemaja/1/edit 和文档:https : //docs.a