【问题标题】:Using Global Function in Titanium在 Titanium 中使用全局函数
【发布时间】:2011-05-11 06:03:48
【问题描述】:

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

但我的问题是:

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

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

谢谢,

拉克什贡达利亚

【问题讨论】:

  • 请尽可能多地显示相关代码。

标签: titanium appcelerator appcelerator-mobile


【解决方案1】:

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

这是一个如何实现它的简单概述,我在my blog上有一个complete code listing

【讨论】:

    【解决方案2】:

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

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

    代码在哪里执行无关紧要,因为 Ti.UI.currentWindow 将是活动窗口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 2022-01-16
      相关资源
      最近更新 更多