Bonjour,
j ai 2 pages dans une application mobile je veux a partir de page1 envoyer des Variable par exemple X=10,COLOR=#989898 a la page 2 sans perdre les valeurs
je suis debutant en angularJS
merci pour tous reponse
Salut,
Tu peux soit utiliser les cookies, soit le localStorage, soit tout simplement stocker temporairement les variables dont tu as besoin dans ton $rootScope (à condition qu'il soit partagé entre tes pages). Quelle est l'archi de ton app ?
@betaWeb, $rootScope
est un anti-pattern. Les cookies et le localStorage ne sont pas fait pour ca a la base. @debianiam, tu dois utiliser un service angularjs.
$rootScope
ne doit pas etre utilisé pour stocker des données. Il s'agit du scope racine (comme son nom l'indique) donc en effet tous les elements de l'application y ont acces, seulement ce n'est pas son role de stocker des variables ou en tout cas pas des variables transients. Il s'agit du meme anti-pattern que de stocker des variables transients dans l'objet window
. Utiliser $rootScope va rendre l'application plus dure à tester et à maintenir.
Salut debianiam,
La meilleure solutions pour partager des données entre tes controllers et d'utiliser un service / factory.
Tu peux aussi envoyer les données d'un controller à un autre via l'URL en adaptant ton routing et en utilisat $routeParams
---Dans ton routing --
.when( 'page1/:variableX
controller: 'MainCtrl',
templateUrl: 'page1' }
);
-- Dans ton controller --
var maVariable = $routeParams.:variableX;
ex : http://stackoverflow.com/questions/11758079/how-to-get-the-url-parameters-using-angular-js--
Je rejoins ce qui a été dit plus haut. L'utilisation de rootScope est déconseillé, et même l'utilisation de $scope n'est pas une bonne pratique
https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md#controllers