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

时间:2016-03-24 22:37:07

标签: angularjs angular-services

我对角度很新,所以请耐心等待。 :-) 我在一个视图中有一个联系人列表。我把一个服务与一些setter和getter函数放在一起来保存联系人ID。当用户单击列表视图上的联系人时,它会在服务中设置ID并移至编辑表单视图。这很好用,但是当我完成编辑并单击返回列表视图时,我想清除服务中的变量。我该怎么办? 我在这个主题上找到了另外一个答案,但我认为它使用了内置的角度路由器而不是ui-router。

Angular updating and clearing factory variables

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

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