小编典典

尝试加载角度超过一次

javascript

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

grunt serve可以正常工作,但是grunt build会产生锁定内存的分布,这很可能是因为角度中的圆形引用。

我将angular升级到了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');

阅读 287

收藏
2020-05-01

共1个答案

小编典典

这可能是许多问题:本质上是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一遍又一遍地重新加载角度加载。

就我而言,grunt-concat导致templateUrl在构建后而不是在构建之前是错误的。

2020-05-01