Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该在哪里使用AngularJS保存数据?_Javascript_Angularjs - Fatal编程技术网

Javascript 我应该在哪里使用AngularJS保存数据?

Javascript 我应该在哪里使用AngularJS保存数据?,javascript,angularjs,Javascript,Angularjs,我有一个关于用AngularJS存储数据的问题。我应该使用某种服务或控制器来保存数据吗?我在Angular中看到了不同的代码,一次人们将数据存储在服务中,另一次存储在控制器中。我想说,正确的方法是把它放在工厂里,但这是一种好的做法吗 谢谢 如果您需要跨多个视图/控制器(例如登录用户)使用数据,那么我建议您使用一种保存数据的服务。通过这种方式,您可以从注入它的任何地方访问它。但是,如果您只需要在其中一个控制器中使用数据,我看不出创建服务的理由,只需将其存储在控制器中。好吧,这取决于您对“存储数据”

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


谢谢

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

好吧,这取决于您对“存储数据”的含义

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

如果您的意思是保留数据,以便即使在页面刷新后或关闭浏览器并重新打开同一应用程序后数据仍能保持,那么您可以将javascript API用于会话存储和本地存储(考虑到较旧的浏览器可能没有这些API,您必须对其进行多填充)。我为此使用了一个角度服务,得到了很好的结果:

如果您的意思是在与您不同的其他系统中持久化数据以使用它,那么您应该依赖数据库服务器,无论是您的还是来自第三方的(请看一看)


当然,您有更多的选项,但它们与使用纯javascript时的选项没有区别。如果您创建一个服务来管理它们(IndexedDB、WebSQL等),那么可以从“角度”来处理它们中的每一个。最终,这取决于您试图实现的目标。

为什么不将数据存储在json中,并使用任何服务或工厂获取数据呢。我认为这是一个简单的解决办法。你的问题有点难理解。是否要在服务器上持久保存此数据?关于客户?或者它只是一些根本不需要存储的数据(只是供视图使用)。我指的是不从服务器检索的数据,我更喜欢谈论一些本地数据,比如我将用来进行一些计算的系数列表。数据大部分时间应该保存在服务中,控制器是服务(及其数据)之间的链接还有风景。保持控制器纤细、整齐、集中。无论是使用angular.service、angular.factory还是angular.Provider创建服务,我个人仍然会创建一个服务,即使它只针对一个控制器。这样,您就可以在整个应用程序中保持控制器精简和逻辑一致。