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" を宣言しているので、問題なく動作するはずです。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 に答える