Partage de données entre les contrôleurs AngularJS
La transmission de données entre les contrôleurs est une tâche courante dans les applications AngularJS. Pour répondre à ce besoin, vous disposez de plusieurs options, telles que les services, les diffusions et le service $rootScope.
Utiliser un service
Les services offrent un moyen centralisé de gérer état et partage de données entre plusieurs composants. Pour créer un service, appelez la méthode factory() du module d'application et définissez la logique de votre service à l'intérieur. Par exemple, vous pouvez créer un service de produit comme celui-ci :
app.factory('productService', function() { var productList = []; var addProduct = function(newObj) { productList.push(newObj); }; var getProducts = function(){ return productList; }; return { addProduct: addProduct, getProducts: getProducts }; });
Injecter le service et partager des données
Dans vos ProductCtrl et CartCtrl, injectez le productService comme une dépendance. Ensuite, dans ProductCtrl, définissez une action qui ajoute le produit sélectionné à la liste des produits du service :
app.controller('ProductCtrl', function($scope, productService) { $scope.callToAddToProductList = function(currObj){ productService.addProduct(currObj); }; });
Dans CartCtrl, récupérez les produits du service :
app.controller('CartCtrl', function($scope, productService) { $scope.products = productService.getProducts(); });
Ceci Cette approche vous permet de séparer le traitement des données des contrôleurs, ce qui facilite la gestion et la réutilisation des données dans différentes parties de votre application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!