2016-04-19 2 views
1

Neu bei AngularJS und versuchen herauszufinden, wie man ein Array von Objekten Daten (nicht eingegebene Strings) zwischen den Controllern schieben. Momentan schiebt mein Code Daten in einen Controller ('ChooseTabCtrl'), aber ich möchte zu einem anderen Controller ('ListTabCtrl') wechseln, so dass die Liste auf einer anderen Seite angezeigt wird. Ich bin verwirrt b/c die meisten Beispiele zeigen nur, wenn ein Benutzer eine Zeichenfolge Text eingibt. Mein Projekt fügt einen Favoriten hinzu, indem Sie auf eine Schaltfläche klicken. Jede Hilfe wäre willkommen.Array von Objekten Daten über Service für mehrere Controller schieben angularjs

+1

Es gibt mehrere Ansätze, aber ich denke, in Ihrem Fall der beste Ansatz wäre um einen Service zu definieren, bei dem Sie Ihre Favoriten beibehalten. So können Sie sie von beiden Controllern verwenden – kabaehr

Antwort

1

Sie können einen Dienst dafür erstellen. Wie:

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

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

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

Stellen Sie Ihren Favoriten:

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

Verwenden Sie in Ihrem ListCtrl:

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

Danke für die Antwort das ist perfekt !! – JBlaze321

Verwandte Themen