0

我是angularjs的新手。我已经设计出angularJS服务,这是因为每下面给出的图: -angularjs服务垃圾收集变量

enter image description here

全球服务被用作用于控制器间通信的平均值。也就是说,它包含父级和子级控制器之间共享的数据。 Grand Parent控制器打开一个弹出对话框,其中包含parentController2,该对话框又打开另一个弹出窗口,其中包含childController3。

现在,我想要的是,存储在全局服务中的数据必须设置为空,当其关联的控制器被销毁时。这是因为根据我的知识,服务是angularjs中的单例。所以,我不希望服务在应用程序的整个生命周期中保持变量,即使它们不是必需的。此外,我正在使用controllerAs语法并且不想使用$ scope(我知道我可以在作用域的'$ destroy'事件中执行垃圾回收),以使我的东西与angularjs 2.0兼容。

有没有什么办法,我可以在控制器使用controllerAs语法时从服务器收集变量,这些变量不是必需的?

为新手问题道歉。提前致谢。

回答

0

使用ng-view是垃圾收集的另一个解决方案,因为它在视图更改后立即销毁作用域。它将与ngroute一起使用,但仍然提供了更好的垃圾收集机制。 您可以检查NG-视图代码

function destroyLastScope() { 
    if (lastScope) { 
     lastScope.$destroy(); 
     lastScope = null; 
    } 
    } 

这个函数被调用,如果你从父母到孩子家长的范围将被销毁

+0

是什么破坏,即以前的范围的范围的指令内lastScope在这里? –

+0

如果您正在搬家,这是家长的范围。 –