Angularjs 如何解决angular LocalStorageModule在ngmin之后使用$injector:Moduler消息失败的问题

Angularjs 如何解决angular LocalStorageModule在ngmin之后使用$injector:Moduler消息失败的问题,angularjs,gruntjs,yeoman,mean-stack,Angularjs,Gruntjs,Yeoman,Mean Stack,我完成了测试,当我执行grunt-service时,生成的应用程序运行良好。但是,当我执行grunt-service:dist时,它失败了。错误消息是: Uncaught Error: [$injector:modulerr] Failed to instantiate module mytodoApp due to: Error: [$injector:unpr] Unknown provider: a 在我的app.js文件中,如果我注释掉对configure的调用(设置前缀),那么问题就

我完成了测试,当我执行
grunt-service
时,生成的应用程序运行良好。但是,当我执行
grunt-service:dist
时,它失败了。错误消息是:

Uncaught Error: [$injector:modulerr] Failed to instantiate module mytodoApp due to: Error: [$injector:unpr] Unknown provider: a
在我的app.js文件中,如果我注释掉对configure的调用(设置前缀),那么问题就会消失:

angular.module('mytodoApp', ['LocalStorageModule', 'ngCookies', 'ngResource', 'ngSanitize', 'ngRoute', 'ui.sortable'])
.config(['localStorageServiceProvider', function (localStorageServiceProvider) {
    localStorageServiceProvider.setPrefix('ls');
}])
.config(function ($routeProvider) {
    $routeProvider
        .when('/', {
            templateUrl: 'views/main.html',
            controller: 'MainCtrl'
        })
        .otherwise({
            redirectTo: '/'
        });
});

按如下方式包装我的app.js文件解决了问题:

(function() {
    var app = angular.module('mytodoApp', ['LocalStorageModule','ngCookies','ngResource','ngSanitize','ngRoute','ui.sortable']);
    app.config(['localStorageServiceProvider', function (localStorageServiceProvider) {
        localStorageServiceProvider.setPrefix('ls');
    }]);
    app.config(function ($routeProvider) {
        $routeProvider
            .when('/', {
                templateUrl: 'views/main.html',
                controller: 'MainCtrl'
            })
            .otherwise({
                redirectTo: '/'
            });
    });
}.call(this));

按如下方式包装我的app.js文件解决了问题:

(function() {
    var app = angular.module('mytodoApp', ['LocalStorageModule','ngCookies','ngResource','ngSanitize','ngRoute','ui.sortable']);
    app.config(['localStorageServiceProvider', function (localStorageServiceProvider) {
        localStorageServiceProvider.setPrefix('ls');
    }]);
    app.config(function ($routeProvider) {
        $routeProvider
            .when('/', {
                templateUrl: 'views/main.html',
                controller: 'MainCtrl'
            })
            .otherwise({
                redirectTo: '/'
            });
    });
}.call(this));

您需要将第二个.config()块包装在ngMin安全代码中:

angular.module('mytodoApp', ['LocalStorageModule', 'ngCookies', 'ngResource', 'ngSanitize', 'ngRoute', 'ui.sortable'])
.config(['localStorageServiceProvider', function (localStorageServiceProvider) {
    localStorageServiceProvider.setPrefix('ls');
}])
.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/', {
            templateUrl: 'views/main.html',
            controller: 'MainCtrl'
        })
        .otherwise({
            redirectTo: '/'
        });
}]);

或者将这两个块组合起来。

您需要将第二个.config()块包装在ngMin安全代码中:

angular.module('mytodoApp', ['LocalStorageModule', 'ngCookies', 'ngResource', 'ngSanitize', 'ngRoute', 'ui.sortable'])
.config(['localStorageServiceProvider', function (localStorageServiceProvider) {
    localStorageServiceProvider.setPrefix('ls');
}])
.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/', {
            templateUrl: 'views/main.html',
            controller: 'MainCtrl'
        })
        .otherwise({
            redirectTo: '/'
        });
}]);

或者将这两个块组合起来。

我也有同样的问题。正如Eddie所建议的那样,我最终合并了两个.config部分,如下所示:

.config(function ($routeProvider, localStorageServiceProvider) {
    localStorageServiceProvider.setPrefix('ls');

    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

我也有同样的问题。正如Eddie所建议的那样,我最终合并了两个.config部分,如下所示:

.config(function ($routeProvider, localStorageServiceProvider) {
    localStorageServiceProvider.setPrefix('ls');

    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

嗯,我认为第二个街区不是问题所在。如果我注释掉第一个配置块(据称它已经是ngMin安全的),它可以正常工作,但是没有前缀。不管我在上面的回答中如何包装它,我都修复了它。好吧,我认为第二块不是问题所在。如果我注释掉第一个配置块(据称它已经是ngMin安全的),它可以正常工作,但是没有前缀。不管如何包装它,就像我在上面的答案中修复它一样。