Titanium Alloy: 运行 require 语句中存在的函数

Titanium Alloy: Run a function that exists in a require statement

我有以下代码:

index.xml

<Window>
    <View>
        <Require id="foo1" src='foo'>            
    </View>
</Window>

foo.xml

<View>
    <Label>This is from foo</Label>
</View>

foo.js

function doSomething() {
    Ti.API.info('YES!');
}

问题

我希望能够 运行 index.js 中的函数 doSometing()。我该怎么做?

我试过了:

$.foo1.doSomething()

但这似乎不起作用。

foo.xml

<View id="view">
    <Label>This is from foo</Label>
</View>

foo.js

$.view.doSomething = function(){
  Ti.API.info('YES!');
}

然后:$.foo1.view.doSomething();

编辑:更好

exports.doSomething = function(){
  Ti.API.info('YES!');
}

在没有 .view!

的情况下使用它
<Window>
    <View>
        <Require id="foo1" src='foo'>            
    </View>
</Window>

在这段代码中,Require id 持有 foo.js 文件的控制器,意味着

$.foo1 = $foo.js

为了从 Require 访问任何 属性 或方法,您可以将 属性 附加到任何视图或像这样导出它:

foo.js

$.doSomething = function () {
    Ti.API.info('YES!');
}

index.js

$.foo1.doSomething();

如果是以上@miga的回答,你需要在index.js中使用这个代码:

// view is the id of topmost view to which you attached the method.
$.foo1.view.doSomething();