当前位置: 首页 > 面试题库 >

Angularjs:错误:[ng:areq]参数'HomeController'不是一个函数,未定义

汤修贤
2023-03-14
问题内容

这是我使用angularjs进行的演示,用于创建服务文件并将服务html" target="_blank">添加到控制器。

我的演示有两个问题:

  • 一种是<script src="HomeController.js"><script src="MyService.js">我收到此错误之前,

错误:[ng:areq]参数’HomeController’不是一个函数,未定义

  • 另一个是<script src="MyService.js"><script src="HomeController.js">我收到以下错误之前,

错误:[$ injector:unpr]未知提供程序:MyServiceProvider <-MyService

我的来源:

档案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

(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

(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');



 类似资料:
  • 问题内容: 我注意到在这里问了几次同样的问题,我尝试过解决这个问题,但是没有帮助。 我正在学习带蛋头视频的本教程。 但是,当我进入“控制器和控制器之间共享数据”部分时,我无法正常工作。 当我使用Chrome运行它时,在控制台中出现此错误: “参数“ FirstCtrl”不是函数,未定义”。 我真的不知道怎么了 代码与教程中的相同。 的HTML main.js 问题答案: 您的html中有2个未命名

  • 问题内容: 在Scala Play中使用AngularJS时,出现此错误。 错误:参数“ MainCtrl”不是函数,未定义 我正在尝试创建包含一周中各天的表格。 请看一下我的代码。我检查了控制器的名称,但这似乎是正确的。注意:此SO答案中使用的代码 index.scala.html MainCtrl.js 问题答案: 从模块名称([myApp])中删除 并添加到html,它应该可以工作。

  • 问题内容: 我正在尝试编写示例AngularJS和SpringMVC项目。spring方法可以正常工作,但是我的站点控制器中的函数声明存在问题。我的应用应该从文本输入中返回一个单词,但是当我单击按钮时,出现了以下错误: 这是我的index.html: 和controller.js: 我注意到,这一定是ng-click值中的函数声明存在某种问题。在现场启动时,controler.js可以正常运行,但

  • 问题内容: 我已经建立了一个工厂来处理我的控制器的功能,但是不知何故,控制器会在其中一个功能上返回错误: 错误:Auth.getUser(…)。成功不是函数@ http:// localhost:8080 / app / controllers / mainCtrl.js:10:1 … 我不知道这是怎么回事,其余功能似乎工作正常? 主控制器: 问题答案: 请参阅$ http服务文档中的 “ 弃用声

  • 我试图订阅一个来自服务的可观察对象,它构建时没有错误,但我得到了错误“this.service.getBanners(…)。在浏览器中查看时,“订阅”不是功能。 服务: 组成部分: 你知道我做错了什么吗?

  • 问题内容: 我正在尝试使用jQuery和Ajax,并且使用了这种方法。但是我收到错误$ .toJSON不是firebug中的函数。问题出在哪里?我使用jquery 1.3.2。谢谢 问题答案: 没错 没有功能:http : //api.jquery.com/jQuery.toJSON。也许您想使用它。