如何在AngularJS 1.2.20中使用AngularJS材质

时间:2018-04-10 09:31:02

标签: angularjs angularjs-material

我尝试在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>

2 个答案:

答案 0 :(得分:1)

bower.jsonpackage.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,然后加载自定义脚本,并声明您的应用程序(在视图中),然后再控制您的控制器。