我尝试在AngularJS 1.2.20项目中使用此Getting Started指南安装最新的AngularJS Material版本。 (我知道它的旧,但我不能更新)
Failed to instantiate module app due to:
Error: [$injector:modulerr] http://errors.angularjs.org/1.2.20/$injector/modulerr?p0=...
at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js:6:450
at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js:34:97
at Array.forEach ()
at q (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js:7:280)
at e (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js:33:207)
at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js:33:284
at Array.forEach ()
at q (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js:7:280)
at e (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js:33:207)
at dc (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js:36:309
我不知道为什么,但我找不到任何类型的列表与版本兼容......
也许有人有个主意?
这是我在
中包含js文件的方式<!-- Angular Material Library -->
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.8/angular-material.min.js"></script>
这是我的angular.module:
var app = angular.module('app', [
'ngMaterial',
'ui.bootstrap',
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute',
'infinite-scroll',
'rzModule',
'ngReallyClickModule',
'ngVideoCutModule',
'ngVideoTrailerModule',
'ngItemModules',
'ngDirectives',
'xeditable',
'monospaced.elastic',
'angularFileUpload',
'angulartics',
'angulartics.google.analytics',
'angular-video',
'checklist-model',
'ui-notification',
'luegg.directives',
'ngLoadingModule'
]);
包含JS文件的顺序:
<script src="/inc/assets/js/modernizr.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular-sanitize.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular-resource.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular-cookies.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular-route.js"></script>
<script src="/inc/js/app/application.js"></script>
<script src="/inc/js/app/app.routes.js"></script>
<script src="/inc/js/app/app.config.js"></script>
<!-- Angular Material Library -->
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.8/angular-material.min.js"></script>
答案 0 :(得分:1)
如bower.json和package.json中所示,AngularJS 1.4是我们最新版本正式支持的最早版本。现实情况是建议使用1.5+。我们很快就会转向1.6。
请注意,1.2.20
于2014年7月11日发布,并且缺少许多安全补丁。如果您必须使用1.2.x,则至少应该使用1.2.32
,其中包括修复程序和安全修补程序,并于2016年10月11日发布。
我强烈建议升级到最新的AngularJS 1.6,因为1.7将在今年夏天推出,并将包括LTS。您希望您的活动项目在LTS上继续前进,因为关键修复和安全补丁仅适用于AngularJS 1.7.x。
答案 1 :(得分:0)
关于问题评论中的讨论,我认为您的错误是在加载AngularJS脚本之前声明您的应用程序(和您的控制器)。
我建议你这样做:
<html>
<script src="angular.js"></script>
<script src="app.js"></script>
<body ng-app="app">
<div ng-controller="MainCtrl">
</div>
</body>
</html>
首先加载AngularJS,然后加载自定义脚本,并声明您的应用程序(在视图中),然后再控制您的控制器。