我将AngularJS 1.3与jqgrid 4.6.0一起使用。
每次我创建一个新的jqgrid并删除它时,我有250Ko的内存泄漏。
我的网格处于局部视图中,具有不同的控制器。 我的范围有一个$ destroy事件。 我的网格是用指令构建的。
当我关闭视图但我的网格已经存在时,我进入此事件
查看
<div ng-controller="ConsulterGridController">
<table jqgrid options="optionsGrilleRecherche"></table>
</div>
&#13;
指令
export function jqgrid($document): ng.IDirective {
return {
restrict: 'A',
scope: {
options: "=?",
data: '=?'
},
link: function (scope: IJqGridScope, element, attrs) {
scope.$on('$destroy', function () {
// deregister all event handlers
//table.jqGrid('clearGridData');
//table.GridUnload();
//table.GridDestroy();
//$('gbox_'+options.id).remove();
//table.trigger('reloadGrid');
//table.remove();
angular.element('gbox_' + options.id).remove();
angular.element(options.id).remove();
element.html('');//.empty();
element.off();
console.log(element);
element.remove();
console.log(element);
});
var table; var grid;
table = angular.element('<table id="' + options.id + '"></table>');
element.append(table);
element.addClass('ui-grille');
grid = table.jqGrid(options);
},
controller: function ($scope) {
}
};
}
jqgrid.$inject = ["$document"];
}
&#13;
我尝试了一些方法,但内存泄漏仍然存在。