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安全的),它可以正常工作,但是没有前缀。不管如何包装它,就像我在上面的答案中修复它一样。