0

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

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

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

任何有关此问题的帮助将不胜感激!

4

1 回答 1

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";
于 2016-03-11T19:39:05.630 回答