我使用的是Alloy 1.3。可以更新Controller.getView()中的内容吗?例如:
在Alloy中,如果我们有view view
<Alloy>
<View>
<Label id="label1"/>
... other content ...
</View>
</Alloy>
在view.js
中exports.updateLabel = function(value){
$.label1.text = value;
}
如果我有另一个控制器,例如index.js
var v = Alloy.createController('view').getView();
// assume $.win is the <Window> in index.xml
$.win.add(v);
function updateContent(value){
// This is not work. I want to know how it can be updated
// after the controller turned into a view
v.updateLabel(value);
}
答案 0 :(得分:1)
更新从controller.getView()方法返回的对象上的内容很好。在view.js示例中,您可以通过两种不同的方式更改label1文本:
exports.updateLabel = function(value){
$.label1.text = value;
}
或
exports.updateLabel = function(value){
$.getView('label1').text = value;
}
如果您在没有任何参数的情况下调用$ .getView(),它将返回顶级视图,该视图与您的控制器和视图的名称具有相同的ID。