angulaire.js - Problèmes avec le contrôleur, le service et l'usine d'Angular
怪我咯2017-05-15 16:53:11
0
3
577
Si je partage une donnée avec plusieurs contrôleurs, dois-je enregistrer les données sur un contrôleur de niveau supérieur ou utiliser une usine pour enregistrer les données qui doivent être partagées ? Que se passera-t-il si j'utilise un service ?
Cette question dépend de la pertinence commerciale des données au niveau de votre périmètre lorsque vous utilisez les données.
Fort, c'est-à-dire que vous êtes très sûr que lorsqu'une certaine portée l'utilise, vous pouvez certainement trouver une certaine portée parent en recherchant vers le haut, puis vous pouvez utiliser l'héritage de la portée pour la partager. Cependant, il est recommandé d'utiliser la syntaxe controller as pour donner à chaque contrôleur un espace de noms unique afin d'éviter la duplication d'objet. En fait, vous pouvez même sauvegarder ces données dans $rootScope pour les partager globalement (mais ce n'est pas recommandé, car plus le $rootScope est léger, mieux c'est), ou vous pouvez avoir un contrôleur global de haut niveau pour les sauvegarder. .
Ce n'est pas fort, ce qui signifie que vous ne pouvez pas déterminer quand et où ces données seront utilisées, alors utilisez l'injection de dépendances. Pour les données pures, il est recommandé d'utiliser module.value (données variables) ou module.constant (données immuables). Bien sûr, vous pouvez également utiliser module.factory pour renvoyer un objet (c'est la même chose que module.value). module.service est souvent utilisé pour renvoyer un constructeur, que vous pouvez utiliser pour générer différentes instances d'objet (différentes des autres services singleton).
En fait, module.value/constant/factory/service sont toutes des variantes (sucre syntaxique) de module.provider Lisez le chapitre sur l'injection de dépendances et les services dans la documentation officielle et vous comprendrez tout.
Utiliser le service. Le service est généralement utilisé pour stocker des données. Factory est généralement utilisé pour appeler plusieurs services ~ ou renvoyer des méthodes. En fait, elles se ressemblent. Regarde ça ou ça
En fait, je ne trouve aucune différence entre l'usine et le service. Si vous aimez l'objet js, choisissez le premier. Si vous aimez js oop, utilisez le service. . . Une traduction l'explique de cette façon.
Cette question dépend de la pertinence commerciale des données au niveau de votre périmètre lorsque vous utilisez les données.
Fort, c'est-à-dire que vous êtes très sûr que lorsqu'une certaine portée l'utilise, vous pouvez certainement trouver une certaine portée parent en recherchant vers le haut, puis vous pouvez utiliser l'héritage de la portée pour la partager. Cependant, il est recommandé d'utiliser la syntaxe
controller as
pour donner à chaque contrôleur un espace de noms unique afin d'éviter la duplication d'objet. En fait, vous pouvez même sauvegarder ces données dans$rootScope
pour les partager globalement (mais ce n'est pas recommandé, car plus le$rootScope
est léger, mieux c'est), ou vous pouvez avoir un contrôleur global de haut niveau pour les sauvegarder. .Ce n'est pas fort, ce qui signifie que vous ne pouvez pas déterminer quand et où ces données seront utilisées, alors utilisez l'injection de dépendances. Pour les données pures, il est recommandé d'utiliser
module.value
(données variables) oumodule.constant
(données immuables). Bien sûr, vous pouvez également utilisermodule.factory
pour renvoyer un objet (c'est la même chose quemodule.value
).module.service
est souvent utilisé pour renvoyer un constructeur, que vous pouvez utiliser pour générer différentes instances d'objet (différentes des autres services singleton).En fait,
module.value/constant/factory/service
sont toutes des variantes (sucre syntaxique) demodule.provider
Lisez le chapitre sur l'injection de dépendances et les services dans la documentation officielle et vous comprendrez tout.Utiliser le service. Le service est généralement utilisé pour stocker des données. Factory est généralement utilisé pour appeler plusieurs services ~ ou renvoyer des méthodes. En fait, elles se ressemblent. Regarde ça ou ça
En fait, je ne trouve aucune différence entre l'usine et le service. Si vous aimez l'objet js, choisissez le premier. Si vous aimez js oop, utilisez le service. . . Une traduction l'explique de cette façon.