我创建了一个非常简单的角度应用程序,其中所有路由组件都使用在加载应用程序后立即从API获取的数据。所以我认为开始提取的最佳方式是在根组件中存储路由器插座。在此之后,激活的路由组件应该从特定于该组件的另一个地址获取数据。但是如果没有在根组件中获取数据,它就无法做到。当然,它也不会等待完整的首次提取,因此最终所有进程都会以错误结束。
现在我的问题是:如何强制路由组件等到根组件中的开始提取完成?也许某种方式传递有关它的信息,使用一些服务或从root调用它?还是其他任何想法?
答案 0 :(得分:0)
您应该使用缓存而不是根组件。当活动组件请求数据时,填充缓存。然后当下一个组件请求数据时,首先检查缓存,否则发出请求。您需要一种方法来破坏缓存,这样您的数据就不会变得陈旧。
Angular有一个$cacheFactory(不确定你使用的是什么版本的角度),这对于一个简单的缓存系统(包括LRU缓存)非常有用。