在AngularJS中存储移动设备上的数据

时间:2013-07-12 09:14:49

标签: mobile angularjs storage

我目前正在开发使用AngularJS构建的Mobile WebApp。基本功能类似于简单的ToDo应用程序:创建项目列表(使用ng-repeat)并将这些项目标记为已选中或从列表中删除它们。已检查的项目正被推入单独的ng-repeat控制器。

我当前的问题是:如果您重新加载页面或关闭应用程序,列表内容将消失。我必须能够将ng-repeat控制器的数据存储到localStorage,IndexedDB,WebSQL,Cookies或移动设备上最优雅的解决方案。

我知道有几种解决方案:Angular API有$ cookies / $ cookieStore模块,有一个基于prestistence.js的解决方案,依此类推。但我无法弄清楚哪种解决方案最适合移动设备,跨设备。我不想将应用程序限制在某个平台上,尽管我主要针对Firefox OS atm。

感谢您提供任何形式的建议!

2 个答案:

答案 0 :(得分:0)

我推荐 localStorage 。 API非常简单且widely supported

答案 1 :(得分:0)

如果您想将数据存储在云端,我建议您将FirebaseAngularfire结合使用。它将在几分钟内启动并运行。

首先,您要包含Firebase和AngularFire:

<script src="https://cdn.firebase.com/v0/firebase.js"></script>
<script src="angularFire.js" type="text/javascript"></script>  

然后将firebase声明为角度应用程序的依赖项:

var myapp = angular.module('myapp', ['firebase']);

现在,您需要做的就是将Firebase网址绑定到控制器中的模型:

myapp.controller('MyCtrl', ['$scope', 'angularFire',
  function MyCtrl($scope, angularFire) {
    var url = 'https://MyFirebaseURL.firebaseio.com/foo';
    $scope.foo = angularFire(url, $scope, 'foo');
  }
]);