在钛中使用全局函数
问题描述:
我正在制作钛移动项目,我希望创建一个全局函数,我可以在整个应用程序中使用它。为此,我已经创建了其他.JS文件,我已经定义了该函数,并且包含了需要使用此函数的.JS文件,并且我可以成功地调用该函数。在钛中使用全局函数
但我的问题是:
我可以在该函数创建新的窗口?由于我在该窗口中添加了一个标签和一个MapView,但它没有显示,而在功能开始时,我添加了alert('FunctionCalled')
,它向我显示了警报,但没有向我显示我在窗口中添加的标签。
因此,任何人都可以帮助我了解是否可以通过函数打开窗口。如果是,那么举个例子,以便我可以找出我正在犯的错误。
感谢,
拉克什Gondaliya
答
你的方法可以工作,但不是最好的做法,您应该创建一个全局命名空间,功能添加到命名空间,然后只在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;
})();
这是它是如何实现的简单的轮廓,我有一个complete code listing上my blog
答
是的,你可以创建一个新的窗口或添加标签或其他任何东西。如果你想添加一个标签为当前窗口,那么你会怎么做:
var helloWorld = Ti.UI.createLabel({ text: "Hello World", height: "auto", width: 200 });
Ti.UI.currentWindow.add(helloWorld);
它不会身在何处的代码执行,因为Ti.UI.currentWindow将是活动窗口不管。
请出示尽可能多的相关代码成为可能。 – bh88 2011-05-11 14:58:51