有状态的Angular服务

时间:2015-07-12 19:12:27

标签: angularjs

我创建了一个指令,需要从服务器加载数据。数据取决于 id ,对于每个指令实例,它将是不同的。

我认为最好在服务中编写下载数据的逻辑,而不是在指令中注入。但是使用简单的Angular服务,即单例,我将为所有指令实例提供一个相同的数据。

在互联网上,我发现在服务中我可以编写一个方法,它将返回一个新的对象实例,而不是使用它。

我的问题是:

  1. 在服务中编写这样的逻辑是否正常?
  2. 我应该如何处理服务?

1 个答案:

答案 0 :(得分:1)

在这种情况下,我认为你对“单身人士”的定义感到困惑。这是其他语言所谓的“共享”或“静态”功能;而不是“成员”功能。因此,您将调用相同的函数 - 但您将无法获得相同的数据。您可以使用$http$resource或其他任何内容进行服务定义;但是如果你从控制器(或指令 - 我从来没有需要这样做)调用这个服务,你传递id作为参数,并得到你想要的结果。

底线,服务返回一个函数(这个函数是一个单例,即应用程序范围内的相同函数);但是你用参数调用这个函数并获得你想要的结果