Html 角度JS错误:[$injector:cdep]找到循环依赖项:sessionService<;-会话服务
我最初得到的错误是:经过一些调查,参数'fn'不是函数get string,随后我偶然发现了错误:[$injector:cdep]发现循环依赖项:sessionService.js中的sessionService: 您正在告诉Angular注册(创建)一个名为Html 角度JS错误:[$injector:cdep]找到循环依赖项:sessionService<;-会话服务,html,angularjs,Html,Angularjs,我最初得到的错误是:经过一些调查,参数'fn'不是函数get string,随后我偶然发现了错误:[$injector:cdep]发现循环依赖项:sessionService.js中的sessionService: 您正在告诉Angular注册(创建)一个名为sessionService的服务,该服务有两个依赖项-$window和sessionService。这是循环依赖关系,因为sessionService不能依赖于自身 为了避免循环依赖,您需要从依赖项列表中删除'sessionService
sessionService
的服务,该服务有两个依赖项-$window
和sessionService
。这是循环依赖关系,因为sessionService
不能依赖于自身
为了避免循环依赖,您需要从依赖项列表中删除'sessionService'
我认为您这样做是错误的,但阅读有关Angular services的文档可能会有所帮助:
为什么要将
sessionService
注入sessionService
?我想您可能只想从sessionService中删除“sessionService”
。js@ExplosionPills谢谢我没有看到错误,但是按钮的功能不起作用。谢谢你的详细回答并让我明白
<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
<meta charset="UTF-8">
<title>Services and Factories</title>
<script src="angular.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
crossorigin="anonymous">
</head>
<body ng-controller="sessionController as vm">
<div class="container">
<h1>Services and Factories</h1>
<div class="form-group-row">
<div class="col-sm-4">
<label>Name</label>
</div>
<div class="col-sm-8">
<input type="text" class="form-control" ng-model="vm.model.name">
</div>
</div>
<div class="form-group-row">
<div class="col-sm-4">
<label>Nick Name</label>
</div>
<div class="col-sm-8">
<input type="text" class="form-control" ng-model="vm.model.nickname">
</div>
</div>
<div class="form-group row">
<div class="col-sm-8 col-sm-offset-4">
<input type="button" class="btn btn-primary" ng-click="vm.setServiceSession()" value="Save with Service">
<input type="button" class="btn btn-default" ng-click="vm.getServiceSession()" value="Retrieve from Service">
<input type="button" class="btn btn-default" ng-click="vm.clearServiceSession()" value="Clear from Service">
</div>
</div>
<pre>{{vm.model | json}}</pre>
</div>
<script src="app/app.js"></script>
<script src="app/sessionService.js"></script>
<script src="app/sessionController.js"></script>
</body>
</html>
var app = angular.module('app',[]);
angular.module('app').controller('sessionController',['sessionService',
function (sessionService) {
var vm = this;
function sessionController(sessionService) {
var vm = this;
vm.getServiceSession = function () {
vm.model = {
name: sessionService.get('name'),
nickname: sessionService.get('nickname'),
status: 'Retrieved by service on ' + new Date()
}
};
vm.setServiceSession = function () {
sessionService.save('name', vm.model.name);
sessionService.save('nickname', vm.model.nickname);
vm.getServiceSession();
};
vm.clearServiceSession = function () {
sessionService.clear();
vm.getServiceSession();
}
}
}
]);
angular.module('app').service('sessionService',['$window','sessionService',
function sessionService($window) {
this.save = save;
this.get = get;
this.clear = clear;
function save(key, value) {
$window.sessionStorage.setItem(key,value);
}
function get(key) {
return $window.sessionStorage.getItem(key);
}
function clear() {
$window.sessionStorage.clear();
}
}]);
angular.module('app').service('sessionService',['$window',
function sessionService($window) {
this.save = save;
this.get = get;
this.clear = clear;
function save(key, value) {
$window.sessionStorage.setItem(key,value);
}
function get(key) {
return $window.sessionStorage.getItem(key);
}
function clear() {
$window.sessionStorage.clear();
}
}]);