У меня есть странная ошибка на Android, у меня есть вид страницы, который имеет вид сбоку (SIDE), который загружает представление контента (FILTER), чем этот просмотр фильтра загружает другой вид (FORM) и этот последний загружает некоторые представления (ТЕКСТ)Loop while the cleanup object (only android)
[INFO] : ADD :: TEXT
[INFO] : ADD :: TEXT
[INFO] : ADD :: FORM
[INFO] : ADD :: FILTER
[INFO] : ADD :: SIDE
когда я закрываю активный вид страницы, это вызывает функцию очистки от взглядов ребенка:
$.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
};
Но когда я бегу функция очистки в android, запускает цикл, на iOS отлично работает:
IOS:
[INFO] : CLEANUP :: SIDE
[INFO] : CLEANUP :: FILTER
[INFO] : CLEANUP :: FORM
[INFO] : CLEANUP :: TEXT
[INFO] : CLEANUP :: TEXT
андроид:
[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
...
Любая идея ??
Код не показывает иерархию просмотров/очистки, которые вы объясняете в своем вопросе, вы уверены, что форма не очищает что-либо, связанное с фильтром? –
«Форма» имеет несколько типов полей, если типы «время», «дата» или «параметры», она создает другую «сторону», но в этом примере я использую только поле «текст», поэтому, когда Я уничтожаю «форму», единственные внутренние элементы для уничтожения - это те «текстовые» поля, а «форма» уничтожается только «фильтром», в следующие 3 часа я буду запускать еще несколько тестов, отключая дочерние элементы взгляды один за другим, чтобы найти проблему –
По ошибке я очищал кнопки таким образом: 'for (var i в $ .buttons) $ .buttons [i] .cleanup();' вместо: 'для (var i в $ .buttons.children) $ .buttons.children [i] .cleanup(); ' не знаю почему, но это создает петлю в событии очистки фильтра, решено, спасибо за ответ –