1

我正在制作 Titanium 移动项目,我想在其中创建一个可以在整个应用程序中使用的全局功能。为此,我创建了其他 .JS 文件,在其中定义了函数,并且在其中包含了需要使用此函数的 .JS 文件,并且我能够成功调用该函数。

但我的问题是:

我可以在该功能中创建新窗口吗?因为我在该窗口中添加了一个 Label 和一个 MapView 但它没有显示,而在我添加的功能开始时alert('FunctionCalled'),它显示我警报但没有显示我在窗口中添加的标签。

所以任何人都可以帮助我找出我们是否可以通过函数打开窗口。如果是,那么任何示例示例,这样我就可以找出我犯了什么错误。

谢谢,

拉克什贡达利亚

4

2 回答 2

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;
})();

这是如何实现的简单概述,我的博客上有完整的代码清单

于 2011-05-13T13:18:16.933 回答
-1

是的,您可以创建一个新窗口或添加标签或其他任何内容。如果您想为当前窗口添加标签,那么您可以:

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

代码在哪里执行并不重要,因为 Ti.UI.currentWindow 无论如何都将是活动窗口。

于 2011-05-13T02:55:27.263 回答