1

我有一个使用 ui-router 的单页应用程序,其中列表页面使用 listController,详细信息页面使用 detailController。
详细信息页面window.onresize附有事件,而列表页面没有。
问题是每当我从详细页面移动到列表页面时,onresize 事件仍然会监听并抛出关于调整大小目标元素不存在的错误。

更改页面时如何删除 window.onresize 事件侦听器?

(function() {
    angular
        .module('app')
        .controller('listController', function() {
            // do things for list page
        })
        .controller('detailController', function() {
            window.onresize = function() {
                // do some resize function
            }
        })
})();
4

1 回答 1

8

一旦路由离开并且控制器实例被销毁,您可以重置 onresize 函数。

$scope.$on('$destroy', function() {
   window.onresize = null
}
于 2016-02-25T03:39:26.823 回答