这是我使用angularjs进行的演示,用于创建服务文件并将服务添加到控制器。
我的演示有两个问题:
<script src="HomeController.js">
<script src="MyService.js">
错误:[ng:areq]参数’HomeController’不是一个函数,未定义
错误:[$ injector:unpr]未知提供程序:MyServiceProvider <-MyService
我的来源:
档案Index.html:
Index.html
<!DOCTYPE html> <html > <head lang="en">…</head> <body ng-app="myApp"> … <div ng-controller="HomeController"> <div ng-repeat="item in hello">{{item.id + item.name}}</div> </div> <script src="Scripts/angular.js"></script> <script src="Scripts/angular-route.js"></script> <!-- App libs --> <script src="app/app.js"></script> <script src="app/services/MyService.js"></script> <script src="app/controllers/HomeController.js"></script> </body> </html>
档案HomeController.js:
HomeController.js
(function(angular){ 'use strict'; var myApp = angular.module('myApp',[]); myApp.controller('HomeController',function($scope,MyService){ $scope.hello=[]; $scope.hello = MyService.getHello(); }); })(window.angular);
档案MyService.js:
MyService.js
(function(angular){ 'use strict'; var myApp = angular.module('myApp',[]); myApp.service('MyService', function () { var hello =[ {id:1,name:'cuong'}, {id:2,name:'nguyen'}]; this.getHello = function(){ return hello; }; }); })(window.angular);
这将创建一个新的模块/应用程序:
var myApp = angular.module('myApp',[]);
当它访问一个已经创建的模块时(请 注意省略了第二个参数 ):
var myApp = angular.module('myApp');
由于您在两个脚本上都使用了第一种方法,因此基本上可以覆盖先前创建的模块。
在要加载的第二个脚本上,使用var myApp = angular.module('myApp');。