Использование глобальной функции в Titanium

Я делаю мобильный проект Titanium, в котором хочу сделать одну глобальную функцию, которую я могу использовать во всем приложении. Для этого я создал другой файл .JS, в котором я определил функцию, и я включаю этот файл .JS, в котором мне нужно использовать эту функцию, и я могу успешно вызвать функцию.

Но у меня вопрос:

Могу ли я создать новое окно в этой функции? Поскольку я добавил одну метку и один MapView в это окно, но он не отображается, в то время как в начале функции я добавил alert('FunctionCalled'), он показывает мне предупреждение, но не показывает мне метку, которую я добавил в окно.

Так что любой может помочь мне узнать, можем ли мы открыть окно через функцию. Если да, то любой пример, чтобы я мог выяснить, какую ошибку я делаю.

Спасибо,

Ракеш Гондалия


person Rakesh Gondaliya    schedule 11.05.2011    source источник
comment
пожалуйста, покажите как можно больше релевантного кода.   -  person rivenate247    schedule 11.05.2011


Ответы (2)


вы подходите к работе CAN, но это не лучшая практика, вам следует создать глобальное пространство имен, добавить функцию в это пространство имен, а затем только один раз включить файл с функцией в app.js

// apps.js
var myApp = {};
Ti.include('global.js','ui.js');

myApp.ui.openMainWindow();

затем мы создаем отдельный файл для наших функций пользовательского интерфейса

//ui.js
(function(){

var ui = {};

ui.openMainWindow = function() {
    // do open window stuff

    // call global function
    myApp.global.globalFunction1();
}

myApp.ui = ui;
})();

здесь мы создаем наши глобальные функции, нам не нужно будет включать файл везде, так как мы добавляем его в наше глобальное пространство имен

//global.js
(function(){

var global = {};

global.globalFunction1 = function() {
    // do super global stuff
}

myApp.global = global;
})();

это простой набросок того, как это можно реализовать, у меня есть полный список кода на мой блог

person Aaron Saunders    schedule 13.05.2011

Да, вы можете создать новое окно или добавить метку или что-нибудь еще. Если вы хотите добавить метку к текущему окну, сделайте следующее:

var helloWorld = Ti.UI.createLabel({ text: "Hello World", height: "auto", width: 200 });
Ti.UI.currentWindow.add(helloWorld);

Не имеет значения, где выполняется код, потому что Ti.UI.currentWindow будет активным окном в любом случае.

person Justin    schedule 13.05.2011