为什么在angular中不重置服务数据?

Why service data not reset in angular?

本文关键字:服务 数据 angular 为什么      更新时间:2023-09-26

当我们在angular中从一个url路由到另一个url时,控制器数据是Rest的,但服务数据不会重置。

谁能解释一下为什么它没有重置。如有任何帮助,不胜感激。

谢谢

服务只被实例化一次,依赖于该服务的每个组件都会获得该服务的相同共享实例。服务不会被"重置"/摧毁/拆除,它们是永久的。控制器被绑定到作用域,并随作用域的变化而变化。

这实际上允许你以服务的形式拥有一个恒定的"后端",它在应用程序的整个生命周期中保持其状态,而控制器是绑定在视图上的临时东西,随着GUI的变化而出现和消失。

Angular服务是:

惰性实例化——Angular只在应用组件依赖于它。

singleton -每个组件
依赖于服务获取对单个实例的引用由服务工厂生成。

你可以在Angular的文档中了解更多:https://docs.angularjs.org/guide/services.

这个问题有点老了,但是让我分享一下我是如何删除存储在服务中的数据的。

service.ts

data: any;//I made a storage variable like this so it will be undefined value by default
removeProductData() { 
  this.data= undefined;
}
//In your component just call this function `removeData()` wherever you want to delete your data.