Javascript 使用angular.module的angularjs指令定义

Javascript 使用angular.module的angularjs指令定义,javascript,angularjs,Javascript,Angularjs,请任何人解释一下为什么下面抛出一个“参数'MainCtrl'不是函数,未定义”错误,这个错误似乎与使用模块依赖项注入指令(?)有关 提前谢谢 您遇到了Angular的问题: 请注意,使用angular.module('myModule',[])将创建模块myModule并覆盖任何名为myModule的现有模块。使用angular.module('myModule')检索现有模块 第一次运行angular.module('app',[]),angular将创建一个名为app的模块。下次,您只需运行

请任何人解释一下为什么下面抛出一个“参数'MainCtrl'不是函数,未定义”错误,这个错误似乎与使用模块依赖项注入指令(?)有关


提前谢谢

您遇到了Angular的问题:

请注意,使用angular.module('myModule',[])将创建模块myModule并覆盖任何名为myModule的现有模块。使用angular.module('myModule')检索现有模块

第一次运行
angular.module('app',[])
,angular将创建一个名为
app
的模块。下次,您只需运行
angular.module('app')
,angular将尝试加载现有模块
app


由于您再次调用
angular.module('app',[])
,模块
app
已重新初始化。这就是为什么现在未定义
MainCtrl

angular.module('app',[])
创建一个模块,
angular.module('app')
已创建模块。当你再次创建一个模块时,是的,很明显,它是再次创建的,以前注册的任何东西都将永远消失。谢谢-现在非常有意义
angular.module('app', [])
  .controller('MainCtrl', [function() {
    var self = this;
    self.name = "will this work";
    self.items = [
      {
        name: "name 1",
        test: "test 1"
      },
      {
        name: "name 2",
        test: "test 2"
      }
    ];
  }]);

angular.module('app',[])
  .directive('typeahead', [function() {
    return {
      templateUrl: 'type-ahead.html',
      restrict: 'AEC',
      scope: {
        items: '=',
        prompt: '@',
        title: '@',
        subtitle: '@',
        model: '=',
        onSelect: '&'
      }, <...more code>
angular.module('app', [])
      .controller('MainCtrl', [function() {
        var self = this;
        self.name = "will this work";
        self.items = [
          {
            name: "name 1",
            test: "test 1"
          },
          {
            name: "name 2",
            test: "test 2"
          }
        ];
      }])

    .directive('typeahead', [function() {
        return {