我有服务。通讯通过服务提供。我在一个通用模块中提供服务。但是UserProfileComponent无法订阅该事件。
这是代码
import networkx as nx
import random
G=nx.Graph()
G.add_edges_from([[1,2],[1,3],[2,3],[2,4],[3,5],[4,5]])
to_remove=random.sample(G.edges(),k=2)
G.remove_edges_from(to_remove)
print(G.edges())
答案 0 :(得分:0)
这可能是因为您的服务有两个实例。如果您有延迟加载的模块,那么将为延迟加载的模块创建单独的注入器。您需要适当地管理服务,以便不可能有多个实例。
最好的方法是创建一个CoreModule,它仅包含服务,并且仅在您的根应用程序模块中包含此模块。在根应用程序模块中初始化的服务适用于所有模块。此外,您可以初始化此coreModule,使其只能被初始化一次,并且在任何新的初始化上都会引发错误。
请执行以下操作:https://medium.com/@michelestieven/organizing-angular-applications-f0510761d65a 这真的是一篇很好的文章。
要阻止服务的多个实例,可以将服务构造函数修改为:
export class MyService{
...
constructor(@Optional() @SkipSelf() service: MyService){
if(service){
throw new Error("Multiple Instances");
}
}
}