Angularjs 未捕获的TypeError:angular.module不是当前的函数
这在Angularjs 未捕获的TypeError:angular.module不是当前的函数,angularjs,Angularjs,这在app.js中: var angular = angular.module('ngApp', ['ngRoute']); angular.config(function($routeProvider) { $routeProvider .when('/', { templateUrl: '../templates/companies.html', controller: 'companies' }) ......... }); ang
app.js
中:
var angular = angular.module('ngApp', ['ngRoute']);
angular.config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: '../templates/companies.html',
controller: 'companies'
})
.........
});
angular.module('ngApp').controller('companies', ['$scope', function($scope) {
.........
}]);
这在companys.js中:
var angular = angular.module('ngApp', ['ngRoute']);
angular.config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: '../templates/companies.html',
controller: 'companies'
})
.........
});
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>
基本演示
我不断地发现这个错误:
未捕获类型错误:angular.module不是函数
在公司。js:1
我做错了什么?您的问题是您在app.js
文件中覆盖了angular
对象:
(function () {
'use strict';
var myApp = angular.module('ngApp', ['ngRoute']);
myApp.config(function($routeProvider) {
$routeProvider
.when('/', {
//....
})
})();
var angular = angular.module('ngApp', ...
尝试将angular
变量重命名为其他变量,如app
下面是一个plunker的例子:
使用相同版本的角度和角度路线
<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>
您试图使用一个名为angular的变量。想想是什么导致了这个变量的存在。这可以在angular.js脚本中找到,然后必须首先包含该脚本
在运行angular代码时,angular还不存在。这是一个错误(请参阅开发工具的控制台窗口)。请使用相同版本的角度文件和角度路由 考虑更改标签<代码>角度
用于角度v2+<代码>angularjs用于角度v1。这将确保适当的人看到你的帖子。我只是把它缩短了,抱歉搞混了。事实上:
Oops,现在明白了。谢谢你@DeborahK@SamKirklandWA尝试将变量名从angular
(app.js中发布的脚本的第一行)更改为类似myApp
的其他名称。问题应该是,使用angular
作为变量名,您覆盖了原始angular
对象(从AngularJS库中公开的对象)@SamKirklandWA您更改了错误的对象。lorenzo是指你定义的变量。var myApp=angular.module(…),您还需要在下一行更改为myApp.config,因为这是app.Nope的新变量名。同样的事情。(@SamKirklandWA)您是否尝试过将模块命名为与“ngApp”不同的名称?angular可能已经使用了该名称。不,仍然是相同的名称。(仍然是否定的。事情是一样的。避免保留字严格使用其他naming@marked这篇文章已经有两年多的历史了。它给出的输出Hello{{msg}
相反,它必须Hello test message
谢谢你让我知道。我已经更新了plunker。你能告诉我们错误是什么以及你是如何纠正的吗,我正在学习阶段,谢谢。显然plunker端的某些内容已更改,Angular.js的链接已停止工作,所以我刚刚将Angular读入plunk。