我有问题。 有一个视图 row.xml
<Alloy>
<View>
<Switch id = "search_switch" bindId = "search_switch" />
<Label id = "search_switch_label" />
</ View>
</Alloy>
和MAIN视图
<View id = "general" bindId = "general ">
<Label id = "testLabel" />
</View>
当我添加
时var control = Alloy.createController ('row');
Control.search_switch_label.text = 'TEST';
$.parent.add (control.getView());
所有内容都完美添加,但是如何访问search_switch的方法和属性?
$ .search_switch - 说“undefined”!!!
$ .testLabel.text ='1234567890'; - 一切OK!
答案 0 :(得分:0)
在主视图中,如果您尝试获取row.xml
的方法,那么您有两种基本方法可以做到这一点:
1)使用导出(在
row.js
)
var init = function (){
// some code here
}
exports.getInit = init;
2)使用Alloy.Globals(
row.js
)
Alloy.Globals.init = function(){
// some code here
}
现在要在主视图中访问init函数,您必须分别执行以下操作:
1)访问导出功能(在
MainView.js
)
var control = Alloy.createController ('row');
control.getInit();
2)访问Alloy.Globals函数(在
MainView.js
)
var control = Alloy.createController ('row');
if(Alloy.Globals.init)
Alloy.Globals.init();
好运&amp;干杯强>
答案 1 :(得分:0)
根据您的代码,第一件事就是当您使用$时,这意味着您正在访问当前控制器的控件,因此您不能仅使用$ sign来使用其他控制器的控件。在您的情况下,您需要在row.js文件中设置引用,以便您可以访问该控件或其他控制器中的任何变量或函数。
您需要执行与search_switch_label相同的操作。您可以通过main.js中的控件对象访问search_switch对象,如
control.search_switch.value