3

我正在使用 angularjs 的$localStorage功能,但目前由于某种原因不想包含在内。我知道这很$localStorage有效,因为我在同一个 webapp 的其他控制器中使用过它。我也知道这不是拼写错误,因为我反复检查过,而且我也知道该$localStorage变量curAllianceCol已定义,因为我在以后的控制器中使用了完全相同的变量。

任何帮助表示赞赏,如果(出于某种我不知道的原因)您不能$localStorage在 angularjs 指令中使用,请告诉我,以便我可以解决问题。

相关JS:

window.fires = angular.module('FIRES', ['ngResource', 'ui.bootstrap', 'ui.router', 'ngStorage']);
//(...Non-relevant code..)
window.fires.directive('fieldDirective', ['ScoutService', '$localStorage', function(ScoutService, $interval, $localStorage) {
    var $scope = this;
    $scope.sServ = ScoutService;
    console.log($localStorage.curAllianceCol); //This is line 177, just for reference between the error message and this file
    $scope.col = $localStorage.curAllianceCol;
    //(...Non-relevant code..)
}]);

我收到的错误消息:

“错误:$localStorage 未定义@ http://192.168.250.111:8080/js/fires.js:177:2 调用@ http://192.168.250.111:8080/bower_components/angular/angular.js:3965:14 registerDirective/http://192.168.250.111:8080/bower_components/angular/angular.js:5716:33 forEach@ http://192.168.250.111:8080/bower_components/angular/angular.js:325:9 registerDirective/<@ http://192.168.250.111:8080/bower_components/angular/angular.js:5714:13 invoke@ http://192.168.250.111:8080/bower_components/angular/angular.js:3965:14 createInjector/instanceCache.$injector <@ http://192.168.250.111:8080/bower_components/angular/angular.js:3807:20 getService@http://192.168.250.111:8080/bower_components/angular/angular.js:3929:39 addDirective@ http://192.168.250.111:8080/bower_components/angular/angular.js:6804:41 collectDirectives@ http:// 192.168.250.111:8080/bower_components/angular/angular.js:6231:1 compileNodes@ http://192.168.250.111:8080/bower_components/angular/angular.js:6080:22 compileNodes@ http://192.168.250.111: 8080/bower_components/angular/angular.js:6096:15 compileNodes@ http://192.168.250.111:8080/bower_components/angular/angular.js:6096:15 compileNodes@ http://192.168.250.111:8080/bower_components/ angular/angular.js:6096:15 编译@http://192.168.250.111:8080/bower_components/angular/angular.js:6017:15 $ViewDirectiveFill/<.compile/<@ http://192.168.250.111:8080/bower_components/angular-ui-router/release/ angular-ui-router.js:3893:20 nodeLinkFn@ http://192.168.250.111:8080/bower_components/angular/angular.js:6752:13 CompositeLinkFn@ http://192.168.250.111:8080/bower_components/angular/ angular.js:6146:13 publicLinkFn@ http://192.168.250.111:8080/bower_components/angular/angular.js:6042:30 updateView@ http://192.168.250.111:8080/bower_components/angular-ui-router/发布/angular-ui-router.js:3839:23 $ViewDirective/directive.compile/http://192.168.250.111:8080/bower_components/angular-ui-router/release/angular-ui-router.js:3801:11 $RootScopeProvider/this.$gethttp://192.168。 250.111:8080/bower_components/angular/angular.js:13093:15 transitionTo/$state.transition<@ http://192.168.250.111:8080/bower_components/angular-ui-router/release/angular-ui-router.js :3218:11 qFactory/defer/deferred.promise.then/wrappedCallback@ http://192.168.250.111:8080/bower_components/angular/angular.js:11682:31 qFactory/ref/<.then/<@ http:// /192.168.250.111:8080/bower_components/angular/angular.js:11768:26 $RootScopeProvider/this.$gethttp://192.168.250.111:8080/bower_components/angular/angular.js:12811:16 $RootScopeProvider/this.$gethttp://192.168.250.111:8080/bower_components/angular/angular.js :12623:15 $RootScopeProvider/this.$gethttp://192.168.250.111:8080/bower_components/angular/angular.js:12915:13 done@ http://192.168.250.111:8080/bower_components/angular/angular.js :8450:34 completeRequest@ http://192.168.250.111:8080/bower_components/angular/angular.js:8664:7 createHttpBackend/http://192.168.250.111:8080/bower_components/angular/angular.js:8603:1 "

4

1 回答 1

2

I'm not sure if your code is correct but, have you tried removing the $interval or adding the appropriate dependency since that's the second parameter passed into your directive which would make $localStorage (your 3rd parameter) undefined.

Example without $interval

window.fires.directive('fieldDirective', ['ScoutService', '$localStorage', function(ScoutService, $localStorage) {
    var $scope = this;
    $scope.sServ = ScoutService;
    console.log($localStorage.curAllianceCol); //This is line 177, just for reference between the error message and this file
    $scope.col = $localStorage.curAllianceCol;
    //(...Non-relevant code..)
}]);
于 2015-02-18T02:26:14.720 回答