这是关于Angular Services的一般问题。 我有一个服务。在这项服务中,我们进行Db调用以获取大量数据。让我们说例如需要3秒才能返回所有数据。一旦具有注入服务的控制器开始加载,服务内部的DB调用/功能的启动将开始。 3秒后,我从服务/查询中获取数据。可以说,我想为数据库调用使用相同的服务,完全相同的查询,用于另一个页面/控制器。是否必须再次运行相同的查询?或者第一次从第一个控制器/页面运行查询时的数据是否仍会保留相同的数据,否则查询无法运行?
基本上,我不想再次调用数据库,只返回从第一次调用Query时得到的完全相同的数据。我希望能够只调用一次查询/ DB,并在两个不同的控制器中使用该数据。
答案 0 :(得分:0)
如果您移动到另一个控制器并再次调用该函数,则会发生来自该服务的API调用。
要使用其他控制器中第一次调用的数据,您可以使用以下任一方式:
1)将数据存储在$ sessionStorage或$ localStorage
中2)使用$ broadcast,$ emit和$ on事件来共享数据(取决于你的控制器的调用方式)*