我想知道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.
如何创建两个文件中都可用的全局变量?
答案 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' ];