Angular - 如何在视图更改时清除工厂变量?

Angular - How can I clear factory variables when the view changes?

我是 angular 的新手,所以请多多包涵。 :-) 我在一个视图中有一个联系人列表。我将一个服务与一些 setter 和 getter 函数放在一起来保存联系人 ID。当用户单击列表视图上的联系人时,它会在服务中设置 ID 并移动到编辑表单视图。这运行良好,但当我完成编辑并单击返回列表视图时,我想清除服务中的变量。我该怎么做? 我在这个主题上找到了另一个答案,但我认为它在 angular 路由器中使用 built 而不是 ui-router.

此外,当用户首先从列表移动到编辑表单时,该答案中的方法不会也清除变量吗?

谢谢!

如果是路线变更,您可以使用 $locationChangeStart,请参阅 $location

例如,在您的编辑控制器中,注册路线更改事件:

var onloc = $scope.$on('$locationChangeStart', function (event, newUrl, oldUrl) {                
    myService.cleanUp(whatever);
    onloc();           
});