Appcelerator Titanium Alloy: как хранить данные в ScrollableView для использования в событии клика

У меня есть ScrollableView, в каждом дочернем представлении которого есть изображения и метки. Однако я хотел бы сохранить значение идентификатора для каждого элемента, чтобы использовать его внутри события onClick. Этот идентификатор можно использовать для запроса базы данных или открытия нового контроллера, в который передано значение.

Я подумал о добавлении атрибута в представление для хранения моего идентификатора, например

<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} в этом представлении, чтобы, когда я нажимаю/нажимаю на него, я мог использовать его для открытия нового контроллера с этим значением, переданным в качестве аргумента?


person shrewdbeans    schedule 06.03.2014    source источник


Ответы (1)


event.source будет ярлыком или изображением, на которое вы на самом деле нажали. Установите touchEnabled="false" для дочернего изображения и меток, и ваш код должен работать как положено.

person Dawson Toth    schedule 06.03.2014