为什么我不能在我的 .config 中使用 localStorage,因为它包含在 .module 定义中?



>我有以下内容:

var app = angular
    .module('app', ['ui.router', 'admin', 'home', 'questions', 'ngResource', 'LocalStorageModule'])
    .config(['$sceProvider', '$stateProvider', '$locationProvider', 'localStorageService',
        function ($sceProvider, $stateProvider, $locationProvider, localStorageService ) {
        $sceProvider.enabled(false);
        $locationProvider.html5Mode(true);
        localStorageService.add('adminContent', 'xx');

这给了我一个错误:

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:unpr] Unknown provider: localStorageService
http://errors.angularjs.org/1.2.0-rc.2/$injector/unpr?p0=localStorageService
    at hasOwnPropertyFn (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:78:12)
    at http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:2997:19
    at getService (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:3119:39)
    at Object.invoke (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:3140:13)
    at http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:3078:37
    at Array.forEach (native)
    at forEach (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:224:11)
    at loadModules (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:3065:5)
    at createInjector (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:3007:11)
    at doBootstrap (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:1152:20)
http://errors.angularjs.org/1.2.0-rc.2/$injector/modulerr?p0=app&p1=Error%3…http%3A%2F%2F127.0.0.1%3A81%2FScripts%2Fangular-v1.2.0-rc.2.js%3A1152%3A20) 

像这样在配置中使用本地存储是不可能的吗?我已经包含了本地存储模块的代码,它在应用程序.js之前加载。 它适用于应用程序的其他部分,但当放置在 app.config 中时,同一行不起作用

配置块中只能注入提供程序和常量。有关更多见解,请参阅 AngularJs 文档:http://docs.angularjs.org/guide/module(sektion "Module Load & Dependencies")。

配置块 - 在提供程序注册期间执行 和配置阶段。只能注入提供程序和常量 到配置块中。这是为了防止意外实例化 在完全配置服务之前。

虽然接受的答案正确回答了问题,但它没有提供任何解决方案(对于寻找正确方法的 Angular 新手)。

您可以在运行时访问服务,这在配置后发生。例如:

angular.module('app').run(storeAdminContent);
storeAdminContent.$inject = ['localStorageService'];
function storeAdminContent(localStorageService) {
    localStorageService.add('adminContent', 'xx');
}

相关内容

最新更新