我应该使用AngularJS保存数据?

时间:2015-11-18 08:23:11

标签: javascript angularjs

我有一个关于在AngularJS中存储数据的问题。我应该使用某种服务或控制器来保存数据吗?我在Angular中看到了不同的代码,有一次人们在服务器中存储数据,其他人在控制器中。我会说正确的方法是把它放在工厂里面,但这是一个好习惯吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

嗯,这取决于你的意思和#34;存储数据"为你...

如果您的意思是将数据保存在某个地方只是为了在控制器之间传递数据,那么这个地方就是一种服务。

如果您的意思是保留数据,以便即使在页面刷新后或关闭浏览器并重新打开相同的应用程序后它仍然存在,那么您可以使用javascript apis进行sessionStorage和localStorage(考虑到旧的浏览器可能没有这些api你必须将它们填充)。我已经使用了角色服务,结果很好:https://github.com/tymondesigns/angular-locker

如果您的意思是将数据保存在与您不同的其他系统中,那么您应该依赖数据库服务器,无论是您自己还是来自第三方(请查看Firebird)。

当然,您有更多选择,但如果您使用普通的JavaScript,它们与您拥有的选项不同。他们每个人都可以用" Angular方式治疗"如果你创建一个服务来管理它们(IndexedDB,WebSQL等)最终它取决于你想要实现的目标。

答案 1 :(得分:0)

如果您需要跨多个视图/控制器使用数据,例如登录用户,那么我会建议一个为您保存数据的服务。这样您就可以从注入它的任何地方访问它。但是,如果您只在一个控制器中需要数据,我没有看到创建服务的理由,只需将其存储在控制器中。