2016-04-25 1 views
0

Je développe une grande application mobile qui doit fonctionner sur les anciens appareils prettty. Et j'ai rencontré un problème de long temps de digestion.
Pourriez-vous me donner un conseil, comment le réduire?
Je considérais d'appeler $scope.$digest() au lieu de $timeout() pour éviter $ tirant digérer $ rootScope et mettre à jour seulement $ scopes nécessaire et ses enfants lorsque cela est nécessaire.
Mais il y a un autre problème qui existe, je dois vérifier $$ phase à chaque fois que j'appelle $ digest sur $ scope et ça me semble bizarre. Je pense que je fais quelque chose de mal.

+0

essayez de réduire les numéros d'observateur, utilisez une liaison unidirectionnelle au lieu de deux voies, utilisez 'ngIf' au lieu de' ngShow' – MarkoCen

+0

merci, j'ai utilisé 1.3 angulaire et l'événement ne savait pas sur la liaison unidirectionnelle, de sorte que votre réponse est très utile. –

Répondre

0

Vous ne devriez pas avoir à utiliser $ digest la plupart du temps. Angular gère déjà ce tour d'événements en javascript. Ce que vous devriez vraiment se concentrer sur est d'utiliser le moins possible,

  1. deux données de manière contraignante (lier une fois, ou transmettre des données par le biais d'événements, etc.)
  2. deux données de caractère contraignant - au sérieux, c'est la pire chose à faire avec ce cadre
  3. observateurs, en particulier ceux que les montres collections
  4. lourd utilisation d'élément jquery/angulaire par la manipulation dom
  5. jeter un oeil à ce guide, https://github.com/johnpapa/angular-styleguide