3

angularjs の$localStorage関数を使用していますが、現在は何らかの理由で含めたくありません。$localStorage同じ webapp の他のコントローラーで使用したので、それが機能することはわかっています。また、繰り返し確認したので、これはスペルミスではないこともわかっています。また、後のコントローラーでまったく同じ変数を使用しているため、$localStorage変数が定義されていることもわかっています。curAllianceCol

任意の助けをいただければ幸いです。(私が知らない何らかの理由で) $localStorageangularjs ディレクティブで使用できない場合は、回避策を講じられるよう教えてください。

関連する 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 is undefined @ http://192.168.250.111:8080/js/fires.js:177:2 invoke@ 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

あなたのコードが正しいかどうかはわかりませんが、適切な依存関係を削除または追加しようとしましたか?これは、 (your 3rd parameter)$intervalを作成するディレクティブに渡される2番目のパラメーターだからです$localStorageundefined

$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 に答える