Voilà, je cherche à faire quelque chose, mais je ne sais pas si c'est possible :
Je veux Charger les variables que l'on voit dans la vue directement à partir d'un service, ou d'une factory : Explication :
Pour l'instant voici ce qui fonctionne :
1. J'ai ma factory qui retourne le nombre 45645:
2. Je joins donc cette factory à mon contrôleur comme ceci, pour pouvoir l'activer et y avoir accès :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 .factory('getNombre', getNombre); function getNombre() { var instance = { nombre: nombre }; return instance; function nombre() { return 45645 }; // ... to be continued ... };
3. Ensuite le gros problème est que ma vue HTML n'affiche pas directement mon nombre ! Elle est comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 .controller('nouveauCtrl', function($scope,categoriesService,getNombre) {})
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 {{nb}}
4. Pour que cela fonctionne, je dois encore écrire dans le contrôleur :
Voilà, donc ma question c'est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $scope.nb = getNombre.nombre();
Comment faire pour ne pas avoir à écrire la ligne dans le controleur ?? Ca fait perdre un temps fou ! (La ligne $scope.nb = getNombre.nombre(); qui affecte la variable au $scope)
Est-ce que c'est le comportement normal de AngularJS ?
Moi ce que je voudrais, c'est charger ma factory, et que tous les "brackets" (exemple => {{maData}} s'alimentent automatiquement )à partir de la factory ! Est-ce possible ?
Admettons que j'ai 50 valeurs à charger dans ma factory, j'ai pas envie de taper 50 fois ça dans le controleur, c'est hyper "reloud":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $scope.nombre1 = getNombre.nombre1(); $scope.nombre2 = getNombre.nombre2(); $scope.nombre3 = getNombre.nombre3();
J'ai essayé de nommer la variable comme ça dans ma vue( De la même façon que dans le service) :
Mais cela n'affiche rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part {{nombre}}
Partager