使用Alloy访问所需文件中的$

时间:2014-11-14 00:53:49

标签: javascript titanium appcelerator titanium-alloy

我在我的控制器(ControllerA)中,我有一个外部文件,我想处理方向更改。

//-- In ControllerA
var gestures = require('gestures');

gestures.js内,我需要访问$,因此我可以操纵ControllerA

中的一些元素

内部gestures.js我目前未定义$

我已成功设法通过在init()中创建gestures函数来实现此功能,并且我可以将需求实例化为:

var gestures = require('gestures').init($);但这感觉就像是黑客。

合金中这样做的正确方法是什么?

修改 只是旁注。我尝试使用Ti.include()执行此操作同样的事情......无法访问$

1 个答案:

答案 0 :(得分:0)

CommenJS模块(包含在使用require的其他控制器中)必须独立于任何其他控制器。从它的名字" gesture.js"我认为你试图控制一些方向变化和摇动手势......你必须定义这个模块,以便在所有其他控制器中使用它,并且存在这个功能。

例如假设我有一个名为animations.js的模块:

var animations={};
animations.moveToLeft=function(element,newLeftValue){
     var animation=Ti.UI.createAnimation({
         left:newLeftValue,
         duration:700
         ... so on 
      });
      element.animate(animation);
};
module.exports=animations;

然后我可以从许多其他控制器中使用这个模块,并为许多钛的物体制作动画 只需要在controller.js文件中使用它并使用moveToLeft函数...