Appcelerator Titanium Alloy:如何在ScrollableView上存储数据以在click事件中使用

时间:2014-03-06 16:00:58

标签: javascript titanium appcelerator titanium-alloy

我有一个ScrollableView,它在每个子视图中都有一些图像和标签。但是,我想为每个项目存储一个ID值,以便我可以在onClick事件中使用它。此ID可用于查询数据库或打开传入值的新控制器。

我考虑过在视图上添加一个属性来存储我的ID,就像这样

<ScrollableView dataCollection="videos" id="mainCarousel">
    <View onClick="carouselItemClick" itemID="{the_id}">
        <ImageView image="{episode_img_cached}"></ImageView>                
        <Label text="{title}" id="mainCarouselTitle"></Label>              
        <Label text="{series_txt}" id="mainCarouselSeriesDetails"></Label>    
        <Label text="{episode_txt}" id="mainCarouselEpDetails"></Label>
    </View>
</ScrollableView>

在我的carouselItemClick我想做这样的事情:

function carouselItemClick(event) {
    var selectedItemID = event.source.itemID; // get the ID from the view clicked
    var view = Alloy.createController("episode", itemID).getView();
}

在上面的函数中,我试图找到itemID属性,但它不存在。

如何在此视图上存储{the_id}的值,以便当我单击/点击它时,我可以用它来打开一个新的控制器,并将该值作为参数传递?

1 个答案:

答案 0 :(得分:1)

event.source将是您实际点击的标签或图片。在子图像和标签上设置touchEnabled="false",您的代码应该按预期工作。