Angularjs:错误:[NG:AREQ]参数'的HomeController“不是一个函数,得到了不确定 [英] Angularjs: Error: [ng:areq] Argument 'HomeController' is not a function, got undefined

查看:150
本文介绍了Angularjs:错误:[NG:AREQ]参数'的HomeController“不是一个函数,得到了不确定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的演示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>
        ...
        < D​​IV NG控制器=HomeController的>
            < D​​IV 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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆