2013-04-06 3 views
1

Итак, у меня есть приложение titanium, и я просто прочитал об отдельных контекстах. (Кстати, кто-то здесь должен написать книгу о программировании в титане ... единственное, что там, на самом деле не упоминает ни одного контекста или какого-либо из этих новомодных вещей. Черт возьми, сделай это электронной книгой, я бы ее купил)titanium Как добавить представление в единственный контекст

Титановая документация подчеркивает их использование (http://docs.appcelerator.com/titanium/latest/#!/guide/Coding_Strategies-section-29004891_CodingStrategies-Executioncontexts), а затем вежливо забывает, как реализовать единый контекст!

Итак, вопрос: Предположим, у меня есть страница awesomeWidget - это просто показывает кнопку, и когда вы нажимаете на кнопку, появляется новый экран.

Доступ к странице aswesomeWidget осуществляется через другую страницу - это не из корня приложения титана.

Сохранение отдельных контекстов, как добавить представление, которое кнопка создает в текущем окне?

Do I:

сохранить глобальный указатель на текущий (и только) окна?

передать переменную, содержащую текущее окно вниз для всех следующих страниц, которые используют его

что-то еще?

ответ

1

Прежде всего, Титан сохраняет ссылку на your current window anyway for you, so this use case is easy. Например:

awesomeWidgetButton.addEventListener('click' function(e) { 
    var yourView = Ti.UI.createView({...}); 
    Titanium.UI.currentWindow.add(yourView); 
}); 

Если вы хотите копать дальше, концепция единого контекста тесно связано с использованием CommonJS модулей и require ключевого слова. Очень просто поддерживать единый контекст, просто не открывайте окно с заполненным компонентом url и не используйте ключевое слово require(). Помимо этого, ваше воображение, чтобы отслеживать, кто указывает на то, что и наоборот, существуют стандартные шаблоны и best practices, которые применяются здесь (MVC, Singletons, просто сохраняйте это просто) так же, как и при кодировании на любом другом языке.

Смежные вопросы