我正在制作Titanium移动项目,我想制作一个全局功能,我可以在整个应用程序中使用它。为此,我创建了其他.JS文件,我已经定义了该函数,我在那里包含了.JS文件,我需要使用这个函数,并且我成功地能够调用该函数。
但我的问题是:
我可以在该功能中创建新窗口吗?因为我在该窗口中添加了一个Label和一个MapView,但它没有显示,而在功能开始时我添加了alert('FunctionCalled')
,它显示我警报但没有显示我在窗口中添加的标签
所以任何人都可以帮我找出是否可以通过功能打开窗口。如果是,那么任何示例示例,以便我可以找出我正在犯的错误。
谢谢,
Rakesh Gondaliya
答案 0 :(得分:3)
你接近CAN工作但不是最佳实践,你应该创建一个全局命名空间,将该函数添加到该命名空间,然后只在app.js中包含该函数一次的文件
// apps.js
var myApp = {};
Ti.include('global.js','ui.js');
myApp.ui.openMainWindow();
然后我们为我们的ui函数创建一个单独的文件
//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
答案 1 :(得分:-1)
是的,您可以创建新窗口或添加标签或其他任何内容。如果您想在当前窗口中添加标签,那么您可以这样做:
var helloWorld = Ti.UI.createLabel({ text: "Hello World", height: "auto", width: 200 });
Ti.UI.currentWindow.add(helloWorld);
代码执行的位置无关紧要,因为Ti.UI.currentWindow无论如何都是活动窗口。