javascript - 参数 'indexController' 不是函数,未定义

标签 javascript angularjs angularjs-controller angularjs-module

这个问题之前有人问过,但没有回答我的问题。我对 Angular 还很陌生,目前我只是把东西放在一起。我想让我的工厂在我的 Controller 内工作。但是,我的控制台中不断出现以下错误:

Argument 'indexController' is not a function, got undefined

我破坏了不同目录中的服务和 Controller ,我添加了服务和 Controller <script>到 index.html 文件。

我正在使用 IntelliJ 并使用它的插件来创建样板。

<body >
  <ul class="menu">
    <li><a href="#/view1">view1</a></li>
    <li><a href="#/view2">view2</a></li>
  </ul>


  <!--[if lt IE 7]>
      <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
  <![endif]-->

  <div>

          <p>Name: <input type="text" ng-model="name"> </p>
          <h1>Hello {{name}}</h1> //this works just fine

  </div>

  <div ng-controller="indexController"> //doesn't appear
      <ul>
          <li ng-repeat="x in nameArray">
              {{x.name + ' is : '+x.age+' years old'}}
          </li>
      </ul>

  </div>

Controller :

angular.module('myApp',[])
    .controller('indexController', ['$scope', 'Contact', function($scope, Contact){

        var names = [
            {name:'Drew' , age: 30},
            {name:'Meike', age: 32},
            {name:'Garry', age:64}
        ];

        Contact.add(names);

    $scope.nameArray = Contact.get();



}]);

工厂服务:

angular.module('myApp',[])
    .factory('Contact', function ContactFactory(){
        var personNames = [];
        return{

            add: function(name) {
                personNames.add(name);
            },

            get: function(){
                return personNames;
            }

        }

    });

最佳答案

您不应该在 FactoryService 中再次重新创建 Angular 模块 myApp,当您再次创建 myApp 模块时,它会将旧的已注册组件刷新到该模块。因此,当您注册 FactoryService 时,它会删除旧的注册组件,在这里它会删除 indexController Controller 。当 ng-controller 指令被评估时,它会在模块内搜索 indexController Controller 并抛出错误

应该是

angular.module('myApp')
    .factory('Contact', function ContactFactory(){

代替

angular.module('myApp',[])
    .factory('Contact', function ContactFactory(){

关于javascript - 参数 'indexController' 不是函数,未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35350274/

相关文章:

javascript - 添加非居中文本会移动居中元素

javascript - OAuth 2.0 token 处理。是否有服务器 token 和客户端 token ?

javascript - 修复 twitter bootstrap 折叠图标,glyphicons

javascript - 自定义验证作为 Angular 中的函数

javascript - 如何将 .scss 文件作为全局导入到 app.js 父文件?

javascript - 全局变量在新的弹出窗口中未定义,而它们是预先定义的

javascript - 动态创建 Angular View

javascript - Angular $resource 未提供正确的数据

javascript - Angular ui-router 将值解析为字符串

javascript - Controller 未定义 AngularJS