从不同的Controller访问视图中的表单元素

时间:2016-03-11 17:20:55

标签: javascript appcelerator appcelerator-titanium appcelerator-alloy

尝试从主控制器更新视图中的标签文本。

我有1个控制器:index.js 然后我有2个视图:index.xml(对于iOS)和android_index.xml(对于android)。

在链接到控制器的视图中,我可以在index.js文件中访问这样的表单元素

$.formLabel.text = "updated text"

但另一种观点,我将控制器存储在一个变量中。这个视图基本上是一个孤儿,因为它没有控制器,我只是右键单击并创建了一个没有控制器的新视图。

var win=Alloy.createController('android_index').getView();

我似乎无法访问index.js中的表单元素:

win.formLabel.text = "updated text"

当我尝试时说它是未定义的

非常感谢您对此问题的任何帮助!

1 个答案:

答案 0 :(得分:1)

getView()方法返回控制器的第一个顶级视图:https://docs.appcelerator.com/platform/latest/#!/api/Alloy.Controller-method-getView

如果您想要访问子视图,可以执行以下操作:

var win=Alloy.createController('android_index'); //reference to your controller
win.formLabel.text = "updated text";

或者这也有效:

win.getView('formLabel').text = "updated text";