Alloy Controller.getView()中的内容可以更新吗?

时间:2014-02-18 10:36:21

标签: view controller titanium appcelerator titanium-alloy

我使用的是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);
}

1 个答案:

答案 0 :(得分:1)

更新从controller.getView()方法返回的对象上的内容很好。在view.js示例中,您可以通过两种不同的方式更改label1文本:

exports.updateLabel = function(value){
   $.label1.text = value;
}

exports.updateLabel = function(value){
   $.getView('label1').text = value;
}

如果您在没有任何参数的情况下调用$ .getView(),它将返回顶级视图,该视图与您的控制器和视图的名称具有相同的ID。