95 votes

Comment résoudre l'erreur Angular "10 itérations $digest() atteintes" ?

10 itérations de $digest() atteintes. Abandon !

Il y a beaucoup de texte justificatif dans le sens de " Les veilleurs ont tiré dans les 5 dernières itérations : "etc., mais une grande partie de ce texte est du code Javascript provenant de diverses fonctions. Existe-t-il des règles empiriques pour diagnostiquer ce problème ? S'agit-il d'un problème qui peut TOUJOURS être atténué, ou existe-t-il des applications suffisamment complexes pour que ce problème soit traité comme un simple avertissement ?

3voto

askie Points 41

Le moyen le plus simple est : utiliser angular.js, pas le fichier min. Ouvrez-le et trouvez la ligne :

if ((dirty || asyncQueue.length) && !(ttl--)) {

ajouter la ligne ci-dessous :

console.log("aaaa",watch)

puis rafraîchissez votre page, dans la console des outils de développement, vous trouverez vous trouverez le code d'erreur .

1voto

Sir Ben Benji Points 1063

C'est un bug connu dans ui-router cela nous a aidé : https://github.com/angular-ui/ui-router/issues/600

0voto

Casey Points 161

Je voudrais également mentionner que j'ai reçu ce message d'erreur lorsque j'avais une faute de frappe dans le templateUrl d'une directive personnalisée que j'avais dans mon projet. En raison de cette faute de frappe, le modèle n'a pas pu être chargé.

/* @ngInject */
function topNav() {
    var directive = {
        bindToController: true,
        controller: TopNavController,
        controllerAs: 'vm',
        restrict: 'EA',
        scope: {
            'navline': '=',
            'sign': '='
        },
        templateUrl: 'app/shared/layout/top-navTHIS-IS-A-TYPO.html'
    };

Regardez dans l'onglet réseau des outils de développement de votre navigateur Web, et regardez si une ressource a une erreur 404.

Facile à négliger, car le message d'erreur est très énigmatique et n'a apparemment aucun rapport avec le véritable problème.

0voto

Sandeep M Points 157

J'ai eu ce problème dans mon projet parce que l'élément .otherwise() ne correspondait pas à ma définition de l'itinéraire et je me trompais d'itinéraire.

0voto

Maccurt Points 26

J'ai eu ce problème parce que je faisais ceci

var variableExpense = this.lodash.find(product.variableExpenseList, (ve) => {
               return ve.rawMaterial.id = rawMaterial.id;
});

Au lieu de cela : (notice = vs ===), mon test unitaire a commencé à se casser et j'ai trouvé ma stupidité

var variableExpense = this.lodash.find(product.variableExpenseList, (ve) => {
               return ve.rawMaterial.id === rawMaterial.id;
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X