在 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中文網其他相關文章!