2016-04-19 31 views
1

新增AngularJS並試圖找出如何在控制器之間推送對象數據數組(不是輸入字符串)。目前,我的代碼將數據推送到一個控制器('ChooseTabCtrl'),但我想推到另一個控制器('ListTabCtrl'),以便列表顯示在另一個頁面上。我很困惑b/c大多數例子只在用戶輸入一串文本時才顯示。我的項目通過點擊按鈕添加了一個fave。任何幫助,將不勝感激。通過服務爲多個控制器推送對象數據數組angularjs

+1

有幾種方法,但我在你的情況想最好的辦法是定義一個服務,讓您持久保存您的收藏夾。所以你可以使用它們從兩個控制器 – kabaehr

回答

1

您可以爲此創建一項服務。像:

.service('FavoritesService', function(){ 
    var favorites = []; 

    this.getFavorites = function(){ 
     return favorites; 
    }; 

    this.setFavorite = function(favorite){ 
     favorites.push(favorite); 
    }; 
}); 

設置您的收藏夾:

... 
if (!$scope.myFaveItems.some(isAlreadyPresent)) { 
    $scope.myFaveItems.unshift(item); 
    FavoritesService.setFavorite(item); 
} 
... 

用它在你的ListCtrl:

.controller('ListTabCtrl', function($scope, FavoritesService) { 
    $scope.myFaveItems = FavoritesService.getFavorites(); 
}); 
+0

感謝您的答覆,這是完美的! – JBlaze321

相關問題