AngularJS未捕获的错误:无模块:myApp

时间:2018-06-19 17:01:24

标签: angularjs

AngularJS:使用angular.module和VM

我已经如下定义了我的角度模块,并希望按照指南使用VM。不知道我在这里做错了什么,但是它给我控制台错误:

  

未捕获的错误:无模块:myApp

这是我的代码:

<div ng-controller="Ctrl">
    Hello, {{vm.name}}!
</div>
var app = angular.module('myApp');

app.controller('Ctrl', ['$scope', '$http',
  function ($scope, $http) { 
    var vm = this;
    vm.name = "John";
}]);

这是我的jsfiddle:

https://jsfiddle.net/dn7pkuf8/

4 个答案:

答案 0 :(得分:4)

首先,您在声明模块时需要添加一个空数组(或具有相关性的数组)。如果没有该数组,则将尝试使用名称myApp来获取该模块。

var app = angular.module('myApp', []);

然后,您需要将应用名称添加到视图中的NgApp指令中,否则,角度应用需要启动。

尝试一下

<body ng-app="myApp">
  <div ng-controller="Ctrl as vm">
     Hello, {{vm.name}}!
  </div>
</body>

答案 1 :(得分:3)

创建新模块时,必须将数组作为第二个参数。

var app = angular.module('myApp', []);

否则,它将查找不存在的现有应用程序“ myApp”。

答案 2 :(得分:0)

您似乎正在尝试使用ContollerAs语法。我已经设置了here

您的HTML:

<html>

  <head>
    <script type="text/javascript" src="https://code.angularjs.org/1.4.0-rc.2/angular.min.js"></script>
    <script src="script.js"></script>
  </head>

  <body ng-app="myApp">
    <h1>Hello Plunker!</h1>

    <div ng-controller="Ctrl as vm">
      Hello, {{vm.name}}!
    </div>
  </body>

</html>

您的Javascript:

var app = angular.module('myApp', []);

app.controller('Ctrl', function () { 
  var vm = this;
  vm.name = "John";
});

我无法在您的jsfiddle中使用此功能,但我认为这基本上是您使用控制器的HTML中的语法更正,以及此处其他人(包括ng-app,您的javascript)提出的要点模块语法)。

答案 3 :(得分:0)

您没有使用正确的语法来创建应用程序实例。 正确的语法如下

var app = angular.module('myApp',[]);

那么您写的系统税是什么意思?

var app = angular.module('myApp');

这意味着您已经创建了实例,并希望使用它。现在您将了解为什么angularjs引发此错误。因为不是创建新实例,而是查找未创建的实例。

  

注意:需要附加参数[]来指定   依赖性。这意味着您可以添加现有的angularjs   应用程序。意味着您可以添加依赖性并使用它。

您在下面完成的js文件应该是这样的

var app = angular.module('myApp',[]);

app.controller('Ctrl', ['$scope', '$http',
  function ($scope, $http) { 
    var vm = this;
    vm.name = "John";
}]);