Titanium appcelerator如何在listview中更新视图?

时间:2016-10-14 12:16:54

标签: titanium appcelerator titanium-mobile appcelerator-titanium

我有一个Appcelerator Titanium应用程序,我有一个Ti.UI.ListView,里面有一个视图(view_one.xml):

...
<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;
    }
}

当点击评估视图时,我终于得到了:     undefined不是对象(评估item.stars.backgroundColor)

如果有人可以提供帮助,这很棒,无论如何,感谢这个伟大的社区。

1 个答案:

答案 0 :(得分:0)

您已为itemclick事件分配了两次:

onItemclick="changePage" 

onItemclick="getEvaluation"

因此,如果您只使用后者,它应该正确捕获控制器功能,并且项目应该正确更新,因为您的控制器代码看起来有效。