Android模拟器上的Titanium上下文问题

时间:2012-05-30 19:14:33

标签: javascript android-emulator titanium titanium-mobile

运行的应用程序在我的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({"

有什么建议吗?

1 个答案:

答案 0 :(得分: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