Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度解析程序和组件不共享注入服务?_Javascript_Angular_Dependency Injection - Fatal编程技术网

Javascript 角度解析程序和组件不共享注入服务?

Javascript 角度解析程序和组件不共享注入服务?,javascript,angular,dependency-injection,Javascript,Angular,Dependency Injection,我有一个表来显示我的产品列表组件中的一些产品。数据量适中,因此我添加了一个解析器,在加载数据之前不会将用户放在页面上。现在,我的解析器注入了我的产品服务,它有自己的方法从我的后端加载数据,并将产品保存在服务内的一个数组中。所以我的解析器注入这个服务,调用LoadProducts函数来预取数据,然后加载组件 现在的问题是,重用产品列表组件中的数据的最佳方式是什么?出于某种原因,如果我将相同的服务注入产品列表组件,我可以看到产品没有加载,因此我不确定我的解析器和组件是否注入了相同的服务单例 如果我只

我有一个表来显示我的产品列表组件中的一些产品。数据量适中,因此我添加了一个解析器,在加载数据之前不会将用户放在页面上。现在,我的解析器注入了我的产品服务,它有自己的方法从我的后端加载数据,并将产品保存在服务内的一个数组中。所以我的解析器注入这个服务,调用LoadProducts函数来预取数据,然后加载组件

现在的问题是,重用产品列表组件中的数据的最佳方式是什么?出于某种原因,如果我将相同的服务注入产品列表组件,我可以看到产品没有加载,因此我不确定我的解析器和组件是否注入了相同的服务单例

如果我只是简单地使用解析器传递它从服务本身获得的产品,那么我的组件就可以访问这些产品,但是当涉及到对它们进行更新时,它不会写入对我的产品列表服务的更改,这是其他组件所需要的


这种设置的最佳结构/方法是什么。我相信这不会那么不寻常吧?

如果您查看Angular文档,其中说明如下:“不要在共享模块中指定应用程序范围内的单例提供程序。导入该共享模块的延迟加载NgModule将生成其自己的服务副本。”

因此,核心模块中应该提供一项您希望作为单例用户使用的服务,当应用程序启动时,您可以导入该服务一次,而不必在其他任何地方导入

这里是链接到


祝您度过愉快的一天:)

如果您查看Angular文档,其中说明如下:“不要在共享模块中指定应用程序范围的单例提供程序。导入该共享模块的延迟加载NgModule将生成其自己的服务副本。”

因此,核心模块中应该提供一项您希望作为单例用户使用的服务,当应用程序启动时,您可以导入该服务一次,而不必在其他任何地方导入

这里是链接到


祝您度过愉快的一天:)

您正在模块的提供商中提供服务,对吗?是的,我的产品列表模块和加载我的解决方案的模块(应用程序模块)中都提供了服务。在这种情况下,您应该创建一个共享模块,该模块将由两个模块(产品列表和应用程序)导入。通过此操作,将只创建一个服务实例,而现在正在创建两个实例Hanks,让我尝试一下,然后返回给您。谢谢您的帮助。它现在似乎起作用了。现在的问题是什么是好的做法。因为解析器的唯一目的是运行服务中的方法,所以它不需要将这些方法返回到组件,因为它也会注入服务。那么这是一个好的实践吗?我应该不从解析器返回任何内容吗?您正在模块的提供商中提供服务,对吗?是的,它在我的产品列表模块和加载我的解析器的模块(应用程序模块)中提供。在这种情况下,您应该创建一个共享模块,该模块将由两个模块(产品列表和应用程序)导入。通过此操作,将只创建一个服务实例,而现在正在创建两个实例Hanks,让我尝试一下,然后返回给您。谢谢您的帮助。它现在似乎起作用了。现在的问题是什么是好的做法。因为解析器的唯一目的是运行服务中的方法,所以它不需要将这些方法返回到组件,因为它也会注入服务。那么这是一个好的实践吗?我应该不从解析器返回任何东西吗?谢谢您提供的支持文档。现在似乎工作得很好,我对这些模块有了更好的理解。感谢您提供的支持文档。现在似乎工作得很好,我对模块有了更好的理解。