bonne façon d'initialiser les valeurs de portée lorsque la vue est chargé avec angularjs, ngInit?
J'ai été en apprentissage angularJs depuis quelques semaines et a été à la recherche à un certain nombre de grande échelle des applications pour voir comment les choses fonctionnent dans le monde réel. Dans la plupart d'entre eux que j'ai remarqué quand une vue est chargé :
ng-init="init()"
autrement dit, la fonction init() est appelée dans le contrôleur. Est utilisé pour définir les valeurs initiales.
MAIS(grand mais) lors de la lecture par le biais de l'angle de docs sur ngInit je suis venu plutôt à un regard sévère description:
"La seule utilisation appropriée de ngInit pour aliasing propriétés spéciales de ngRepeat, comme on le voit dans la démo ci-dessous. Outre ce cas, vous devez utiliser les contrôleurs plutôt que ngInit pour initialiser les valeurs d'un champ."
donc ma question est,
Est-ce mal de s'exercer à utiliser ngInit d'initialiser les valeurs dans un champ lorsque la vue est chargé?
si oui , pourquoi est-ce ? et quelle est la bonne façon?
OriginalL'auteur Aidan Gee | 2013-12-12
Vous devez vous connecter pour publier un commentaire.
C'est une mauvaise pratique, car la vue est initialisé à un autre moment que le contrôleur ET le recueil cycle de processus de cette fonction, ce qui est inutile, plus de ce cycle. Je suppose que vous avez quelque chose comme:
Vue:
Contrôleur:
La meilleure pratique est de faire ceci:
Vue:
Contrôleur:
Pendant que vous êtes correct, à partir de l'angle de la documentation: "Il est préférable d'utiliser ngBind au lieu de {{ expression }} lorsqu'un modèle est momentanément affichée par le navigateur dans son état brut, avant Angulaire compile." Cela m'indique que vous êtes mieux d'attendre pour voir si vous avez réellement ce problème avant de passer à ng-bind.
Vous pourriez ne jamais voir le problème parce que votre navigateur peut être en cours d'exécution sur un chef d'oeuvre de l'ordinateur. Je suggère de l'utiliser en prévention de la façon car il n'y a aucun inconvénient.
ng-bind est vraiment plus utile dans votre page d'index. Code html qui est chargé après ne pas avoir que l'effet de clignotement.
Il doit y avoir une différence si ils ont des comportements différents. L'angle de la documentation dit que généralement vous VOULEZ utiliser le {{}} la notation. Alors que j'ai utilisé ng-bind pour vaincre l'objet du débat, je l'utilise généralement {{}} jusqu'à ce que je vois un problème. Aussi, habituellement, le problème est de moins en moins à voir avec les performances de l'ordinateur et de plus à faire avec les données que vous chargez dans les DOM et à quelle vitesse angulaire peut se lier.
OriginalL'auteur Fourth