titanium - 钛合金可变范围

标签 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');

在应用程序/ssets/mylib/lib.js

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

如何使全局变量在两个文件中都可用?

最佳答案

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

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' ];

关于titanium - 钛合金可变范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978128/

相关文章:

android - 我可以阻止移动应用程序关闭吗

ios - Titanium:水平布局中的 UI.Slider

android - 在 Titanium 中恰好有两列的 TableView 中显示内容

iphone - 给定链接是否可以重新排列移动网络用户界面?

javascript - javascript 中的句子但可变

android - 无法用合金隐藏标题栏钛

javascript - 按距离与钛合金型号排序

ios - iAd钛白色矩形然后消失

Javascript/appcelerator - 无法检测 XML

facebook - Titanium facebook模块单线程