0

我正在运行一个在我的 iOS 模拟器中运行良好的应用程序,但是它在我的 Android 模拟器上崩溃了,因为它说我没有定义一个变体。

这是我的示例代码:

/*app.js*/
var myApp = {};
myApp.ui = require("ui");
myApp.ui.createAppTabGroup.open();

/*ui.js*/
function createAppTabGroup() {
    var tabGroup = Titanium.UI.createTabGroup();
    myApp.fugitivesTab = Titanium.UI.createTab({
    title: L('fugitives'),
        window: fugitives
    });
};

我在创建 require("ui") 之前声明了“var myApp”,所以它应该可以正常工作,事实上,它可以在 iOS 模拟器上运行,但在 Android 中说“myApp 未在行中定义xx myApp.fugitivesTab = Titanium.UI.createTab({"

有什么建议吗?

4

1 回答 1

0

问题(或优势)require()是,它失去了它的背景。

为此,您必须在 ui.js 中再次重新定义 myApp,或者将其传递给函数

你能做的最好的就是只使用 require ,当它不需要任何来自外部的东西时,否则你将不得不像这样给函数本身提供任何东西:

myApp.ui.createAppTabGroup.open(myApp);

function createAppTabGroup(myApp) {

但这可能不是您想要的。

尝试这样做:

/* ui.js */
myApp.ui.createAppTabGroup = function() {


/*app.js*/ 
Ti.include('ui.js');
/* CODE HERE */
myApp.ui.createAppTabGroup.open
于 2012-05-30T19:20:33.387 回答