尝试从主控制器更新视图中的标签文本。
我有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"
当我尝试时说它是未定义的
非常感谢您对此问题的任何帮助!
答案 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";