来自属于另一个的控制器的呼叫功能

时间:2014-02-25 16:17:48

标签: titanium

我有两个控制器'键盘'属于'索引'控制器

我知道我可以在index.js中调用keyboard.js中的函数。

但是如何从keyboard.js中调用index.js中的函数

在这个cae中我想从fromhere()函数调用wantToCall()

我的index.js

var KeyboardCon = Alloy.createController('keyboard',{});
$.KeyboardView.add(KeyboardCon.getView());  
KeyboardCon.test() // I can call the function in keyboard.js from index.js

function wantToCall(){
    //
}

我的indes.xml

<Alloy>
<Window id="GameWin" class="container">
    <View id="KeyboardView" />
</Window>
</Alloy>

我的keyboard.js

function fromhere(){
   I want to call wanToCall from here.
}

exports.test = function (){
}

1 个答案:

答案 0 :(得分:4)

我相信会为你做到的。您将$传递给键盘控制器以传递引用,以便它可以引用键盘中的索引控制器。抱歉没时间测试它。

index.js

var KeyboardCon = Alloy.createController('keyboard',{index: $});
...    
exports.wantToCall = function(){
    //
}

keyboard.js

var args = arguments[0] || {};
function fromhere(){
   args.index.wantToCall();  
}

或者我通常做的事情:

index.js

Alloy.Globals.Index = $;
...
exports.wantToCall(){
        //
    }

keyboard.js

function fromhere(){
   Alloy.Globals.Index.wantToCall();  
}