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

标签 javascript titanium appcelerator titanium-alloy

我在我的 Controller (ControllerA) 中,并且有一个外部文件,我想要处理方向更改。

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

gestures.js 中,我需要访问 $,以便可以操作 ControllerA 中的一些元素

gestures.js 中,我目前未定义 $

我已经成功地通过在gestures中创建一个init()函数来使其工作,并且我可以实例化需求,例如:

vargestures = require('gestures').init($);但这感觉像是一个黑客。

在合金中执行此操作的正确方法是什么?

编辑 只是一个旁注。我也尝试使用 Ti.include() 执行此操作,但同样的事情...无法访问 $

最佳答案

CommenJS 模块(使用 require 包含在其他 Controller 中)必须独立于任何其他 Controller 。从它的名称“gesture.js”来看,我认为您正在尝试控制一些方向变化和摇动手势...您必须定义此模块才能在所有其他 Controller 中使用它,并且为此功能存在。

例如假设我有一个名为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 的这个模块并为许多钛的物体设置动画 只需在controller.js文件中需要它并使用moveToLeft函数...

关于javascript - 使用 Alloy 访问所需文件中的 $,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26921249/

相关文章:

c# - Kendo UI 输入焦点 - 选择和 Ajax 调用后,DropdownList 保留焦点

安卓-Appcelerator : UI object with opacity 0 still "clickable"?

android - 是否可以使用 Java + (Cordova/Titanium) 开发混合移动应用程序

javascript - nuxtjs中如何控制路由渲染

javascript - 如何在 JSX 中循环尝试数据

javascript - 访问对象内部的对象值

钛合金 - 如何最好地将单击事件分配给选项对话框上的选项?

android - Appcelerator 钛构建大约需要 2 分钟

titanium - 在 Titanium 移动应用程序中添加计时器

javascript - ExtJs 父子组件双向绑定(bind)