我在我的控制器(ControllerA
)中,我有一个外部文件,我想处理方向更改。
//-- In ControllerA
var gestures = require('gestures');
在gestures.js
内,我需要访问$
,因此我可以操纵ControllerA
内部gestures.js
我目前未定义$
我已成功设法通过在init()
中创建gestures
函数来实现此功能,并且我可以将需求实例化为:
var gestures = require('gestures').init($);
但这感觉就像是黑客。
合金中这样做的正确方法是什么?
修改
只是旁注。我尝试使用Ti.include()
执行此操作同样的事情......无法访问$
答案 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函数...