我有一个yeoman脚手架应用程序(全栈角度生成器)。
grunt serve可以正常工作,但是grunt build会产生锁定内存的分布,这很可能是因为角度中的圆形引用。
grunt serve
grunt build
我将angular升级到了1.2.15。我得到的错误是:
1.2.15
WARNING: Tried to Load Angular More Than Once
升级之前,错误为:
Error: 10 $digest() iterations reached. Aborting!
调试非常困难,因为它仅在构建/缩小之后才发生。我所有的模块都是angular的数组格式,因此最小化DI应该不是问题,而是这样。
没有单个脚本会导致这种情况。它唯一消失的方法是,如果我不使用我的app.js文件进行初始化。我的app.js文件在下面。
有什么想法吗?
'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');
这可能是许多问题:本质上是routeProvider找不到文件并递归加载默认值的问题。
对我来说,导致问题的原因不是缩小,而是js的串联。
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一遍又一遍地重新加载角度加载。
otherwise
templateUrl
index.html
就我而言,grunt-concat导致templateUrl在构建后而不是在构建之前是错误的。