钛合金可变范围

时间:2014-02-24 02:57:38

标签: titanium titanium-alloy

我想知道Ti.include时变量范围是如何工作的。

我在钛2上申请了。*

var x = '12'

Ti.include('lib.js');
lib.js中的

Ti.API.info(x) //it shows 12

但是,现在我将此代码转换为合金

app / controllers / index.js中的

var x = '12'

Ti.include('/mylib/lib.js');
app / ssets / mylib / lib.js中的

app/ssets/mylib/lib.js // it says can't find variable x.

如何创建两个文件中都可用的全局变量?

1 个答案:

答案 0 :(得分:3)

如果需要分配全局变量,可以使用Alloy.Globals object:

Alloy.Globals.myVar = 12;

而不是使用Ti.include,最好使用require();并将代码转换为 CommonJS 模块,这样您就可以设置要导出的变量和函数:

<强> /app/lib/util.js

var privateValue = 'foo';

var publicValue = 'bar';

function getValues() {
    return [privateValue, publicValue];
}

module.exports = {
    publicValue: publicValue,
    getValues: getValues,
};

<强> /app/controllers/index.js

var util = require('/util');

Ti.App.info(util.privateValue); // undefined
Ti.App.info(util.publicValue); // 'bar'

util.publicValue = 'foobar';

Ti.App.info(util.getValues()); // [ 'foo', 'foobar' ];