Angularjs:错误:[NG:AREQ]参数'的HomeController“不是一个函数,得到了不确定 [英] Angularjs: Error: [ng:areq] Argument 'HomeController' is not a function, got undefined
问题描述
这是我的演示angularjs,当我创建一个服务文件,并添加服务控制器。
之后,我有两个问题:
- 一个是,当我把
<脚本SRC =HomeController.js>
在<脚本SRC =MyService.js >
错误:[NG:AREQ]参数'的HomeController不是一个函数,得到了不确定
块引用>
- 一个是,当我把
<脚本SRC =MyService.js>
在<脚本SRC =MyService.js >
错误:[$喷油器:unpr]未知提供商:MyServiceProvider< - 为MyService
块引用>我的源:
文件
的index.html
:<!DOCTYPE HTML>
< HTML和GT;
<头LANG =ENGT&; ...< /头>
<机身NG-应用=对myApp>
...
< DIV NG控制器=HomeController的>
< DIV NG重复=项你好> {{item.id + item.name}}< / DIV>
< / DIV> <脚本SRC =脚本/ angular.js>< / SCRIPT>
<脚本SRC =脚本/角route.js>< / SCRIPT> <! - 应用程序库 - >
<脚本SRC =应用程序/ app.js>< / SCRIPT>
<脚本SRC =应用程序/服务/ MyService.js>< / SCRIPT>
<脚本SRC =应用程序/控制器/ HomeController.js>< / SCRIPT>
< /身体GT;
< / HTML>文件
HomeController.js
:(函数(角){
使用严格的; VAR对myApp = angular.module('对myApp',[]); myApp.controller(HomeController中',函数($范围,为MyService){
$ scope.hello = [];
$ scope.hello = MyService.getHello();
});
})(window.angular);文件
MyService.js
:(函数(角){
使用严格的; VAR对myApp = angular.module('对myApp',[]); myApp.service('为MyService',函数(){
VAR你好= {[ID:1,名称:'的Cuong'},
{ID:2,名称:'阮'}]
this.getHello =功能(){
返回你好;
};
});})(window.angular);
解决方案这将创建一个新的模块/应用程序:
VAR对myApp = angular.module('对myApp',[]);
虽然这个访问已经创建的模块(注意第二个参数的遗漏)
VAR对myApp = angular.module('对myApp');
由于您使用的两个脚本第一种方法你基本上是重写模块,您pviously创建$ P $。
在加载第二个脚本,使用
VAR对myApp = angular.module('对myApp');
This is my demo angularjs, when I create one service file, and add service to controller.
After, I have two problems:
- One is when i put
<script src="HomeController.js">
before<script src="MyService.js">
Error: [ng:areq] Argument 'HomeController' is not a function, got undefined
- One is when i put
<script src="MyService.js">
before<script src="MyService.js">
Error: [$injector:unpr] Unknown provider: MyServiceProvider <- MyService
My source:
File
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>
File
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);
File
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);
解决方案This creates a new module/app:
var myApp = angular.module('myApp',[]);
While this accesses an already created module (notice the omission of the second argument):
var myApp = angular.module('myApp');
Since you use the first approach on both scripts you are basically overriding the module you previously created.
On the second script being loaded, use
var myApp = angular.module('myApp');
.这篇关于Angularjs:错误:[NG:AREQ]参数'的HomeController“不是一个函数,得到了不确定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!