在Ionic Framework中创建收藏列表

时间:2016-01-07 10:56:04

标签: angularjs cordova ionic-framework angular-local-storage

我是Ionic Framework的新手。我正在学习框架并尝试构建一个简单的Android应用程序,它使用json显示一个简单的列表。现在,我想添加一个收藏列表,其中将显示用户选择的项目。当用户点击按钮时,它应该将该项目添加到收藏夹列表中。当用户点击收藏夹选项卡时,它应显示所有收藏项目的列表。 目前我正在尝试使用简单的json和全局控制器。但我担心,如果这是在手机上的Android应用程序上使用它将不会存储所有收藏夹,它会删除所有收藏夹应用程序关闭后。任何人都可以建议一个更好的方法。

非常感谢提前。

2 个答案:

答案 0 :(得分:1)

我看到你用本地存储标记了问题,为什么不使用它?此外,您可以使用其中一种流行的mBaaS解决方案,例如FirebasegunDB

至于逻辑,它很简单:你创建一个新的数组,用于存储这些收藏夹(你可以在喜欢的按钮点击上处理添加/删除)。然后使用“收藏夹”选项卡上的ng-repeat列出收藏夹阵列。

答案 1 :(得分:0)

执行此操作的最佳方式是pouchdb,我使用相同的方式。!

使用命令安装pouchdb:

bower install pouchdb

在index.html中添加以下行

<script src="lib/pouchdb/dist/pouchdb.min.js"></script> 

提供服务:

.factory('FavService', function (UserService) {
    var FavService = {};
    var localDB;
    var user = UserService.getUser();


    if (user) {
        localDB = new PouchDB('u_' + user.id);
    }

    FavService.configDbs = function () {
        //console.log('config dbs');
        var user = UserService.getUser();
        if (user) {
            localDB = new PouchDB('u_' + user.id);
        }
    };

    FavService.storeToLocal = function (product) { //change function name
        if (localDB && product !== "") {
            localDB.post(product);
            // console.log("Action completed");
        } else {
            // console.log("Action not completed");
        }
    };

    FavService.getLocalList = function (callback) {
        if (localDB) {
            localDB.allDocs({
                include_docs: true
            }).then(function (response) {
                // console.log("response :"+JSON.stringify(response));
                localDB = response.rows;
                callback(response.rows);
            }).catch(function () {
                callback(null);
            });
        } else {
            FavService.configDbs();
        }
    };
});