0

У меня есть приложение Appcelerator титана, чтобы сделать, у меня есть Ti.UI.ListView с видом внутрь (view_one.xml):Titanium appcelerator, как обновить вид внутри списка?

... 
<ListView onItemclick="getEvaluation" id="myLisview" defaultItemTemplate="templateLm" bottom="0" top="10" onItemclick="changePage" backgroundColor="white"> 
    <Templates> 
     <Require id="lm_items" src="common/templateLm"/> 
    </Templates> 
</ListView> 
... 

в общем/templateLm:

<Alloy> 
    <ItemTemplate name="templatePageMission"> 
     <View bindId="evaluate" height="10dp"> 
      <Label text="evaluate"></Label> 
     </View> 
     <View bindId="stars" height="15dp"/> 
    </ItemTemplate> 
</Alloy> 

в view_one.js:

function getEvaluation(e){ 
    switch(e.bindId){ 
     case 'evaluate': 
      var item = e.section.getItemAt(e.itemIndex); 
      console.log(item) // <= this is empty ???? 
      item.stars.backgroundColor = "red"; 
     break; 
    } 
} 

и когда нажмите на оценку зрения, которую я, наконец, получил: неопределенный не является объект (оценка item.stars.backgroundColor)

Если кто-то может помочь, это здорово, так или иначе, спасибо за это замечательное сообщество.

ответ

0

Вы назначили itemclick событие дважды:

onItemclick="changePage" 

и

onItemclick="getEvaluation" 

Так что, если вы просто использовать последний, то он должен правильно поймать функции контроллера и элемент должен быть обновлен правильно , так как ваш код контроллера выглядит действительным.