Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何清理剩余的美元手表_Javascript_Angularjs_Memory Leaks - Fatal编程技术网

Javascript 如何清理剩余的美元手表

Javascript 如何清理剩余的美元手表,javascript,angularjs,memory-leaks,Javascript,Angularjs,Memory Leaks,我们将angularJS web组件与jqxGrid进行互操作。当用户在单元格中编辑时,我们将创建一个用angular编写的自定义typeahead编辑器。当编辑器被销毁时,我注意到我的$watchs数组没有返回到以前的值 我正在为我的指令创建一个新的isolateScope,然后对其进行编译,然后在需要编辑器时将其附加到JQX传递给我的DOM元素中: var scope=$rootScope.$newtrue; var customEditor=$compiledirectivescope 为

我们将angularJS web组件与jqxGrid进行互操作。当用户在单元格中编辑时,我们将创建一个用angular编写的自定义typeahead编辑器。当编辑器被销毁时,我注意到我的$watchs数组没有返回到以前的值

我正在为我的指令创建一个新的isolateScope,然后对其进行编译,然后在需要编辑器时将其附加到JQX传递给我的DOM元素中:

var scope=$rootScope.$newtrue; var customEditor=$compiledirectivescope


为了清理这些$watch,我必须做些什么?

很可能是您通过

var scope = $rootScope.$new(true);
使用编辑器完成jqxGrid后,jqxGrid不会销毁

要清理手表,您只需确保拨打了

scope.$destroy();

棘手的部分是确定何时执行销毁调用;我认为jqxGrid应该引发一些事件,比如你可以订阅的beforeEdit和afterEdit;$destroy调用应该在afterEdit事件的事件处理程序中进行。

以下是有效清理监视程序的方法。
希望这有帮助。

就是这样!非常感谢。