2014-02-18 3 views
1

Я использую сплав 1.3. Можно ли обновить содержимое в Controller.getView()? Например:Можно ли обновить содержимое в Alloy Controller.getView()?

В сплаве, если мы имеем вид view.xml

<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

Обновление содержимого объекта, возвращенного с помощью метода controller.getView(), в порядке. В вашем примере view.js вы можете изменить LABEL1 текст двумя различными способами:

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

или

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

Если вы звоните $ .getView() без каких-либо параметров, он возвращает вид сверху уровень, который имеет тот же идентификатор, что и имя вашего контроллера и вид.

+0

В index.js я не могу найти updateLabel. При разрыве в файле index.js v.updateLabel не определен –

Смежные вопросы