我在Android上遇到了一个奇怪的错误,我的页面视图有侧视图(SIDE)加载内容视图(FILTER),而这个过滤器视图加载另一个视图(FORM)和最后一个加载一些视图(TEXT)
$.page.cleanup = function() {
side.cleanup();
};
console.log('ADD :: SIDE');
$.side.cleanup = function() {
console.log('DESTROY :: SIDE');
filter.cleanup();
//remove listeners, and null objects
};
console.log('ADD :: FILTER');
$.filter.cleanup = function() {
console.log('DESTROY :: FILTER');
form.cleanup();
//remove listeners, and null objects
};
console.log('ADD :: FORM');
$.form.cleanup = function() {
console.log('DESTROY :: FORM');
for(var i in text) text[i].cleanup();
//remove listeners, and null objects
};
console.log('ADD :: TEXT');
$.text.cleanup = function() {
console.log('DESTROY :: TEXT');
//remove listeners, and null objects
};
当我关闭活动页面视图时,这会调用子视图的清理功能:
[INFO] : CLEANUP :: SIDE
[INFO] : CLEANUP :: FILTER
[INFO] : CLEANUP :: FORM
[INFO] : CLEANUP :: TEXT
[INFO] : CLEANUP :: TEXT
但是当我在android中运行清理函数时,它启动一个循环,在iOS上工作正常:
的iOS:
[INFO] : CLEANUP :: SIDE
[INFO] : CLEANUP :: FILTER
[INFO] : CLEANUP :: FORM
[INFO] : CLEANUP :: TEXT
[INFO] : CLEANUP :: TEXT
[INFO] : CLEANUP :: FILTER
[INFO] : CLEANUP :: FORM
[INFO] : CLEANUP :: FILTER
[INFO] : CLEANUP :: FORM
[INFO] : CLEANUP :: FILTER
[INFO] : CLEANUP :: FORM
[INFO] : CLEANUP :: FILTER
[INFO] : CLEANUP :: FORM
...
机器人:
DataGrid
任何想法??
答案 0 :(得分:1)
我错误地用这种方式清理按钮:
for(var i in $.buttons) $.buttons[i].cleanup();
而不是:
for(var i in $.buttons.children) $.buttons.children[i].cleanup();
不知道为什么但这会在过滤视图清理事件上创建一个循环,解决了,谢谢你的回答