未捕获的TypeError:angular.module不是函数

时间:2017-04-26 20:27:17

标签: angularjs

这是app.js

var angular = angular.module('ngApp', ['ngRoute']);
angular.config(function($routeProvider) {
$routeProvider
    .when('/', {
        templateUrl: '../templates/companies.html',
        controller: 'companies'
    })
    .........
});

这是companies.js

angular.module('ngApp').controller('companies', ['$scope', function($scope) {
    .........
}]);

这是index.html

<head>
    <title>Basic demo</title>
    <script src="angular.js"></script>
    <script src="angular-route.js"></script>
    <script src="js/app.js" type="text/javascript"></script>
    <script src="js/Controllers/companies.js" type="text/javascript" ></script>
</head>

我一直收到这个错误:

  

未捕获的TypeError:angular.module不是函数       在companies.js:1

我做错了什么?

4 个答案:

答案 0 :(得分:2)

您正在尝试使用名为angular的变量。想想导致该变量存在的原因。这可以在angular.js脚本中找到,然后必须先包含它。

当你的角度代码运行时,角度还不存在。这是一个错误(请参阅Dev Tools的控制台窗口)。请使用相同版本的Angular文件和angular-route!

答案 1 :(得分:0)

您的问题是您在angular文件中覆盖了app.js个对象:

var angular = angular.module('ngApp', ...

尝试将angular变量重命名为其他内容,例如app

以下是它的一个例子: http://plnkr.co/edit/t9KoqROnfWda8XsThOPE

答案 2 :(得分:-1)

(function () {
    'use strict';

    var myApp = angular.module('ngApp', ['ngRoute']);
    myApp.config(function($routeProvider) {
          $routeProvider
             .when('/', {
               //....
})

})();

答案 3 :(得分:-1)

使用相同版本的Angular和AngularRoute

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>