从不同的控制器访问视图中的表单元素

Accessing Form Elements in a view from a different Controller

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

我有 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"

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

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

getView() 方法 return 控制器的第一个顶级视图: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";