gpt4 book ai didi

angularjs - 如何销毁angularjs缓存中的注入(inject)服务?

转载 作者:行者123 更新时间:2023-12-02 04:31:36 24 4
gpt4 key购买 nike

我们都知道在 AngularJS 中 service 是单例的。从那时起,当你执行此 $injector.get('foo') 时,你将获得该服务的一个实例,并且将调用其构造函数+对象将被添加到注入(inject)器的缓存中,因为它是单例。

无论如何,有什么方法可以用来删除该缓存中的服务以重新创建服务吗?使用 factory 解决了这个问题,但无论如何。

最佳答案

要重置服务,您可以公开一个再次调用该服务的函数。

PLUNKER

服务

app.service('MyService', MyService);

function MyService () {
console.log('init service #' + Date.now());

this.reset = () => {
MyService();
}
}

然后你就可以在任何地方使用它了

var myService = $injector.get('MyService');
myService.reset();

使用 ES6 类,您可以执行如下操作:

class MyService {

constructor() {
console.log('init service #' + Date.now());

this.reset = () => {
new MyService();
}
}
}

关于angularjs - 如何销毁angularjs缓存中的注入(inject)服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48173090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com