我有一个只想处理一次的事件。根据我对thisthis博客的理解,具有以下样式应可确保这种行为:

var unbind = $scope.$on(event, function(){
    //do stuff
    unbind();
}


但是,当我在此代码中放置一个断点时,我可以看到它被多次调用。

如何确保代码只能运行一次?

最佳答案

由于事件的异步性质,必须首先调用unbind()调用,而不是最后一次调用,以防止发生多个同时发生的事件。

var unbind = $scope.$on(event, function(){
    unbind();//first, not last
    //do stuff
}

09-18 18:11