离子/角度提供者/服务 - 单身 - 单个实例?

问题描述 投票:0回答:1

我已经读过服务(角度)/提供者(离子)可以特定于组件,或者可以通过在模块级别注册它来由组件共享。我知道这是单例概念,它是所有组件共享的单个实例。我的问题是 - 假设服务/提供者具有基于登录的用户ID从db获取数据的代码,那么在这种情况下,单个实例概念如何区分使用该应用程序的所有用户?在这方面有点困惑。

angularjs ionic-framework
1个回答
0
投票

据我所知,singleton意味着单个组件/服务具有可以与任何其他页面/组件/控制器/共享的内容,但所有这些都发生在应用程序的一个实例中。

示例:让我们说在我们的项目中我们有3页控制器:page1.html, ctrl1.jspage2.html, ctrl2.jspage3.html, ctrl3.js

我们还有1项服务:service1.js

service1.js,我们有一个名为getUserName()的函数

单身人士的概念将允许从所有3个控制器调用getUserName()。如果服务不是sigleton,这意味着它将与一个控制器/页面相关,因此如果service1.js仅与ctrl1.js相关,则无法从ctrl2.js调用函数getUserName()

重要提示:所有这一切都发生在应用程序的一个实例中,单例并不意味着服务在应用程序的所有正在运行的实例之间都是共享的。

话虽这么说,如果你使用你的服务根据一些参数从数据库中获取数据,那么你实现的逻辑决定了将返回什么数据。

© www.soinside.com 2019 - 2024. All rights reserved.