首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >已多次尝试加载Angular

已多次尝试加载Angular
EN

Stack Overflow用户
提问于 2014-03-24 03:26:16
回答 18查看 113.6K关注 0票数 74

我有一个yeoman脚手架应用程序(角度全栈生成器)。

grunt serve工作得很好,但是grunt build生成的发行版锁定了内存,这很可能是因为angular中的循环引用。

我将angular升级到了1.2.15。我得到的错误是:

WARNING: Tried to Load Angular More Than Once

在升级之前,错误是:

Error: 10 $digest() iterations reached. Aborting!

它很难调试,因为它只在构建/缩小之后发生。我的所有模块都是angular的数组格式,所以缩减DI应该不是问题,但它确实是问题。

没有任何单一的脚本会导致这种情况。它消失的唯一方法是如果我没有初始化我的app.js文件。下面是我的app.js文件。

有没有想到什么?

代码语言:javascript
复制
'use strict';

angular.module('myApp', [
  'ngCookies',
  'ngResource',
  'ngSanitize',
  'ngRoute',
  'ngTagsInput',
  'ui.bootstrap',
  'google-maps',
  'firebase'
]);

angular.module('myApp').config(['$routeProvider', function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/listing.html',
        controller: 'ListingCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  }]).constant('FIREBASE_URL', 'something');
EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2014-03-25 00:45:18

这可能是许多问题:本质上是routeProvider找不到文件并递归加载默认文件的问题。

对我来说,事实证明不是缩小而是js的串联导致了问题。

代码语言:javascript
复制
angular.module('myApp').config(['$routeProvider', function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/listing.html',
        controller: 'ListingCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  }]).constant('FIREBASE_URL', 'something');

您将注意到,如果应用程序找不到文件(即otherwise),那么它将重定向到根目录,在本例中,根目录将加载templateUrl。但是如果你的templateUrl是错误的,那么它将导致一个递归,一次又一次地重新加载index.html,加载angular (和其他所有东西)。

在我的例子中,grunt-concat导致templateUrl在构建后出错,但不是在构建之前。

票数 146
EN

Stack Overflow用户

发布于 2014-03-24 12:40:55

这与app.js没有任何关系。相反,当您多次包含Angular JS库时,会记录此警告。

我已经设法在this JSBin中重现了这个错误。注意两个脚本标记(两个不同的版本):

代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>

相关的角度代码在GitHub

票数 15
EN

Stack Overflow用户

发布于 2015-02-26 02:41:45

似乎没有人在任何地方提到过这一点,所以这是触发我的原因:我的身体上有ng-view指令。像这样改变它

代码语言:javascript
复制
<body layout="column">
<div ng-view></div>
...
</body>

已停止错误。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22595878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档