我为一些util方法创建了自己的服务。我的想法是简单地将utilsservice注入我需要方法的模块中。问题是我得到了一个ReferrenceError:未定义myFunction。
我认为这与错误的服务注入有关,但我无法弄清楚自己的方法有什么不对。
我所做的服务:
angular.module('utils',[]).service('UtilsService',function(){
this.myFunction = function(){};
});
在我的app.js文件中,我有以下结构:
(function(){
angular.module('utils',[]);
angular.module('translation',[]);
var app = angular.module('myApp',['translation','utils']);
app.controller('myController',['$http',function($http,UtilsService){
UtilsService.myFunction();
}]);
});
我在.html文件中包含脚本的顺序:
<script type="text/javascript" src="../Libraries/angular.min.js"></script>
<script type="text/javascript" src="../js/angular-js/services/utilService.js"></script>
<script type="text/javascript" src="../js/angular-js/app.js"></script>
<script type="text/javascript" src="../js/angular-js/translate.js"></script>
我已经尝试更改订单,但它没有任何区别。
我很感谢您的任何建议!
答案 0 :(得分:4)
请尝试以下方法。您需要更改脚本引用以指向您拥有它们的文件。加载index.html文件后,您应该看到输出&#34;您调用了myFunction()&#34;在控制台窗口中。这是从服务中打印出来的,表明它被正确调用。我还创建了fiddle
的index.html:
<!doctype html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="UTF-8">
<title>Directives</title>
</head>
<body>
<div ng-controller="myController"></div>
<script src="angular.js"></script>
<script src="app.js"></script>
<script src="utilsService.js"></script>
</body>
</html>
app.js(我已经将代码移出你创建的函数,因为它还没有工作。另外,你有一个拼写错误的拼写anguar在以var app开头的行上。我也删除了由于我没有按照该名称创建任何模块,因此我的代码中的翻译依赖性:
(function(){
//angular.module('utils',[]);
//angular.module('translation',[]);
});
var app = angular.module('myApp',['utils']);
app.controller('myController',['$scope', 'UtilsService',function($scope,UtilsService){
UtilsService.myFunction();
}]);
utilsService.js:
angular.module('utils',[])
.service('UtilsService',function(){
this.myFunction = function(){ console.log ('you called myFunction()')};
});