在 AngularJS 控制器之间共享数据
在控制器之间传递数据是 AngularJS 应用程序中的常见任务。为了满足这一需求,您有多种选择,例如服务、广播和 $rootScope 服务。
使用服务
服务提供了集中管理的方式在多个组件之间状态和共享数据。要创建服务,请调用应用程序模块的factory()方法并在其中定义服务逻辑。例如,您可以创建如下产品服务:
app.factory('productService', function() { var productList = []; var addProduct = function(newObj) { productList.push(newObj); }; var getProducts = function(){ return productList; }; return { addProduct: addProduct, getProducts: getProducts }; });
注入服务并共享数据
在您的 ProductCtrl 和 CartCtrl 中,将 ProductService 注入为一种依赖。然后,在 ProductCtrl 中,定义一个操作,将所选产品添加到服务中的产品列表中:
app.controller('ProductCtrl', function($scope, productService) { $scope.callToAddToProductList = function(currObj){ productService.addProduct(currObj); }; });
在 CartCtrl 中,从服务中检索产品:
app.controller('CartCtrl', function($scope, productService) { $scope.products = productService.getProducts(); });
This方法允许您将数据处理与控制器分开,从而更轻松地管理和重用应用程序不同部分中的数据。
以上是如何在 AngularJS 控制器之间高效共享数据?的详细内容。更多信息请关注PHP中文网其他相关文章!