Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS在.run函数中注入服务_Angularjs_Gruntjs_Yeoman - Fatal编程技术网

AngularJS在.run函数中注入服务

AngularJS在.run函数中注入服务,angularjs,gruntjs,yeoman,Angularjs,Gruntjs,Yeoman,在我的AngularJS应用程序中,使用Yeoman缩小我的应用程序时,我出现以下错误: Uncaught Error: [$injector:unpr] Unknown provider: aProvider <- a <- $http <- AuthenticationService 我当然想到了缩小时的典型注入错误,但我很难看到我的代码中有什么错误 更新 我的认证服务: angular.module('myApp').factory("AuthenticationS

在我的AngularJS应用程序中,使用Yeoman缩小我的应用程序时,我出现以下错误:

Uncaught Error: [$injector:unpr] Unknown provider: aProvider <- a <- $http <-  AuthenticationService 
我当然想到了缩小时的典型注入错误,但我很难看到我的代码中有什么错误

更新

我的认证服务:

angular.module('myApp').factory("AuthenticationService", ['$http', '$rootScope', '$sanitize', 'SessionService', 'FlashService', 'SETTINGS', function($http, $rootScope, $sanitize, SessionService, FlashService, SETTINGS) {

    var cacheSession   = function() {
        SessionService.set('authenticated', true);
    };

    var uncacheSession = function() {
        SessionService.unset('authenticated');
        SessionService.unset('user');
    };

    var loginError = function(response) {
        FlashService.show('warning', response.flash);
    };

    var loginSuccess = function(response) {
        SessionService.set('user', JSON.stringify(response));
        FlashService.clear();
    };

    var logoutSuccess = function(response) {
        FlashService.show('success', response.flash);
    };

    var sanitizeCredentials = function(credentials) {
        return {
            email: $sanitize(credentials.email),
            password: $sanitize(credentials.password)
        };
    };

    return {
        login: function(credentials) {
            var login = $http.post(SETTINGS.urlBackend+"/auth/login", sanitizeCredentials(credentials));
            login.success(cacheSession);
            login.success(loginSuccess);
            login.error(loginError);
            return login;
        },
        logout: function() {
            var logout = $http.get(SETTINGS.urlBackend+"/auth/logout");
            logout.success(uncacheSession);
            logout.success(logoutSuccess);
            logout.error(loginError);
            return logout;
        },
        isLoggedIn: function() {
            var checked = $http.get(SETTINGS.urlBackend+"/auth/check");
            return (checked && SessionService.get('authenticated'));
        }
    };
}]);

我强烈推荐另一种手动设置角度缩小工作的方法,即在[]括号中包装“模块”-控制器、服务、工厂

使用吴敏!这本书是由那些有棱角的人写的,也就是布莱恩·福特。但最重要的是,它消除了编写角度模块时的这种复杂性,它们再次变得清晰易读,而ng min完成了修复缩小问题的艰苦工作

我知道这不是对你的问题的回答,但它可能是你所面临的问题的解决方案

//允许使用非minsafe AngularJS文件。自动使其//minsafe兼容,因此Uglify不会破坏ng引用

 ngmin: {
        dist: {
            files: [
                {
                    expand: true,
                    cwd: '.tmp/concat/scripts',
                    src: '*.js',
                    dest: '.tmp/concat/scripts'
                }
            ]
        }
    },

尝试在
grunfile.js
中的丑陋配置中设置
mangle:false

grunt.initConfig({
  // ...
  uglify: {
    options: {
      mangle: false
    }
  }
});

我在使用Bower的某些软件包时遇到过这种情况。我相信由于某些原因,Angular UI套件中的一些工具不兼容。

您在AuthenticationService服务中遇到了错误您是否使“AuthenticationService”缩小安全?@Julien好吧,给run函数的数组不是使注射缩小安全的方法?@Nitish Kumar不,我没有,错误告诉我运行函数的AuthenticationService未知。这是一个已知问题。$http似乎使用了一个不安全的缩小组件。的确,正如你所说的,这并没有改变我的问题。不,但它可能会解决问题,因为它似乎是一些缩小问题-而不是手工做这个糟糕的咕噜工作更好-哦,snap-咕噜!最好在整个构建过程中使用grunt。。。即使阅读grunt ngmin文档,我也不知道该如何使用它。我是否只需要通过
npm install grunt ngmin--save dev
命令安装它,然后在我的Gruntfile中启用它?我应该什么时候使用
grunt ngmin
命令?在安装和配置grunt ngmin后使用它因为听起来像是在使用耶曼角度生成器,所以已经安装和配置了
grunt ngmin
。它将在每个版本上运行。事实上,已经没有错误了!这条
指令究竟会破坏什么:false
指令?
grunt.initConfig({
  // ...
  uglify: {
    options: {
      mangle: false
    }
  }
});