通过多个控制器angularjs的服务推送对象数据

时间:2016-04-19 20:52:45

标签: javascript angularjs ionic-framework

AngularJS的新手,并试图弄清楚如何在控制器之间推送一组对象数据(而不是输入字符串)。目前,我的代码将数据推送到一个控制器(' ChooseTabCtrl')但我想推送到另一个控制器(' ListTabCtrl'),以便列表显示在另一个页面上。我很困惑b / c大多数例子只在用户输入一串文字时显示。我的项目通过单击按钮添加了一个最爱。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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();
});