Titanium Appcelerator - метод, необходимый для замены Ti.UI.currentWindow () - PullRequest
0 голосов
/ 06 сентября 2018

Унаследованный проект был реализован с использованием устаревших устаревших методов.

Кнопка загружает новую страницу примерно так:

main.js

var thisWindow = Ti.UI.currentWindow;

var nav = Titanium.UI.iOS.createNavigationWindow({
    window: thisWindow
});
nav.open();

myButton.addEventListener('click', function(evt) {
    var detailWindow = Ti.UI.createWindow({
        backgroundColor: '#333333',
        exhibitLat: latitude,
        exhibitLon: longitude,
        url: 'mapPage.js'
    });
    thisWindow.nav = nav;
    nav.openWindow(detailWindow, {
            animated: true
        });
};

При mapPage.js это относится к Ti.UI.currentWindow() для использования данных из main.js, например, так:

mapPage.js

var window = Ti.UI.currentWindow;

var Latitude = window.latitude;
var Longitude = window.longitude;

Как я могу воспроизвести этот метод для успешной передачи параметров в mapPage.js с require?

Некоторое время я царапал голову - так что некоторая помощь (с примерами кода ?) была бы очень кстати! Спасибо

1 Ответ

0 голосов
/ 06 сентября 2018

Свойство url действительно очень устарело. Вместо этого вы должны создать окно внутри mapPage и вернуть его.

mapPage.js:

exports.createWindow = function(latitude, longitude){
    var detailWindow = Ti.UI.createWindow({
        backgroundColor: '#333333',
        exhibitLat: latitude,
        exhibitLon: longitude,
        url: 'mapPage.js'
    });
    return detailWindow
}

Тогда ваш main.js будет выглядеть так:

var nav = Titanium.UI.iOS.createNavigationWindow({
    window: thisWindow
});
nav.open();

myButton.addEventListener('click', function(evt) {
    thisWindow.nav = nav;
    var detailWindow = require('mapPage').createWindow(latitude, longitude);
    nav.openWindow(detailWindow, {
            animated: true
        });
};

Я также удалил раздел thisWindow. Если он получает «currentWindow» так же, как mapPage.js, вам нужно заменить его чем-то похожим, как показано здесь.

...