Что делает window.close () с содержимым указанного окна? - PullRequest
1 голос
/ 06 июня 2011

У меня есть следующий код:

// Initiate the font choosing lists.
var headerListWindow = Titanium.UI.createWindow();

var headerFontListData = [{title:"Row 1"},{title:"Row 2"},{title:"Row 3"}];
var headerFontList = Titanium.UI.createTableView({data:headerFontListData});

chooseHeader.addEventListener('click', function(e) {
    headerListWindow.left=win.width;

    var a = Titanium.UI.createAnimation();
    a.left = 0;
    a.duration = 1000;  

    headerListWindow.add(headerFontList);

    headerListWindow.open(a);
});

headerFontList.addEventListener('click', function(e) {
    var a = Titanium.UI.createAnimation();
    a.left = win.width;
    a.duration = 1000;

    headerListWindow.close(a);
});

Который красиво скользит в окне. Когда я открываю headerListWindow в первый раз, все появляется, список работает, и окно скользит красиво. Когда я close() окно, однако, все имена элементов списка возвращаются к "R." Затем, после повторного открытия окна, элементы списка полностью исчезли. Почему это?

Ответы [ 2 ]

8 голосов
/ 11 июня 2011

.close () убивает ваше окно.это прошлоэтого окна больше нет.Это перестало быть.Это истекло и пошло, чтобы встретить его создателя.Это жестко.Лишенный жизниОн покоится с миром ... и т. Д.

когда ваше окно закрыто, вы его уничтожаете.Вместо этого вы можете попробовать .hide (), который не будет обнулять окно, но просто не будет отображать его на экране.

1 голос
/ 08 февраля 2013

blissapp, я использую платформу Alloy, и если я делаю window.close (), это не убивает окно.Он закрывает окно, но если я войду в окно после того, как оно все еще определено, и оно определенно не мертво.

Я не уверен, что это применимо к разработке без сплава или нет, но объект остается.Вы должны заново открыть окно, чтобы отрендерить его, но, по моему опыту, окно не умерло, как вы его положили.Я определенно не уничтожаю его.

Пример:

welcome.addEventListener('open', function() {
    console.log("welcome is open");
    win1.close();
    Ti.API.debug(win1);
});

Выходы:

[INFO] :  welcome is open
[DEBUG] :  [object welcome]

Ofcause Обнуление переменной - это решение, но почему нет.close () работать как полагается согласно документации с использованием Alloy?Я что-то упускаю при работе в Alloy?

...