我有一个 yeoman 脚手架应用程序(angular fullstack 生成器)。
grunt serve
工作正常,但是 grunt build
产生了一个锁定内存的分布,很可能是因为 angular 中的循环引用。
我将 Angular 升级到 1.2.15
。我得到的错误是:
警告:尝试多次加载 Angular
在升级之前,错误是:
错误:达到 10 次 $digest() 迭代。中止!
调试非常困难,因为它只发生在构建/缩小之后。我所有的模块都是 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
loading angular(以及其他所有内容)。
在我的例子中,grunt-concat 导致 templateUrl 在构建之后出错,但之前不会。
关于javascript - 试图多次加载 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22595878/