javascript - Angular JS注入(inject)器模块错误

标签 javascript angularjs

我是 Angular JS 的新手,我正在尝试在配置中注入(inject)工厂,但它显示找不到模块

工厂代码

var app=angular.module('app',['ui.router','angular-jwt','ngResource','angularValidator','satellizer']);

app.factory('AUTH_SERVICE', function ($auth,$state,$q) {
    var auth={};

 auth.isloggedin=function() {
     var defer = $q.defer();
    if($auth.isAuthenticated()){
   defer.resolve();
    }
    else
    {      
  $state.go('login');  
   defer.reject();     
    }

    return defer.promise;
}

 return auth;
});

配置代码是

app.config(['AUTH_SERVICE','$authProvider','$stateProvider', '$urlRouterProvider',function(AUTH_SERVICE,$stateProvider, $urlRouterProvider,$authProvider) {
$urlRouterProvider.otherwise('/');
    $stateProvider
    .state('home',{
        url:'/',
        templateUrl:'pages/home.html'

})
.state('login',{
    url:'/login',
    templateUrl:'pages/login.html',
    controller:'loginCtrl'
})
.state('register',{
    url:'/register',
    templateUrl:'pages/register.html',
    controller:'registerCtrl'

})

.state('dashboard',{
    url:'/Dashboard',
    templateUrl:'pages/dashboard.html',
    controller:'dashctrl',
    resolve:{
        skiplogin: _skiplogin
    }
})

function _skiplogin(AUTH_SERVICE){
return AUTH_SERVICEAUTH_SERVICE.isloggedin();
}



 }]);

但是显示错误

angular.js:38Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.5.8/$injector/modulerr?p0=app&p1=Error%3A%20%…ocalhost%2Faccoex%2Fbower_components%2Fangular%2Fangular.min.js%3A39%3A319)

最佳答案

您无法在 app.config 中注入(inject) factory 对象,因为它无法确定它们是否已正确加载。

app.config中,您只能注入(inject)ConstsProviders

来自文档

A module is a collection of configuration and run blocks which get applied to the application during the bootstrap process. In its simplest form the module consist of collection of two kinds of blocks:

Configuration blocks - get executed during the provider registrations and configuration phase. Only providers and constants can be injected into configuration blocks. This is to prevent accidental instantiation of services before they have been fully configured.

Run blocks - get executed after the injector is created and are used to kickstart the application. Only instances and constants can be injected into run blocks. This is to prevent further system configuration during application run time.

查看 provider here您可以在 app.config 中配置服务。

关于javascript - Angular JS注入(inject)器模块错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38769790/

相关文章:

javascript - es6 promise : exception thrown in a promise is not caught by the catch method

php - 使用 quilljs 在服务器上上传图像并在图像标签内添加文件路径

JavaScript 日期格式转换。

javascript - Angular : displaying elements in navbar after logged in

javascript - 如何比较Sequelize中的两个日期?

javascript - 无法使用 javascript 获取当前日期时间

javascript - 如何使用codeigniter从动态创建的表中的数据库中获取数据

javascript - 当部分到达页面顶部时动态添加类

android - 在 cordova android 中检查 GPS 状态(开/关)

angularjs - 如何让 Angular $asyncValidator 在模糊时触发但在输入时触发正常验证器