Список титановых сплавов Вложенная модель Массив тегов
Я использую Titanium Alloy версии 3.2. У меня есть коллекция сообщений в виде списка. Мои данные выглядят так:
[
{ username: 'dude', imageUrl: 'url', tags: ['tag1','tag2','tag3'] },
{ username: 'wheres', imageUrl: 'url', tags: ['tag1'] },
{ username: 'my', imageUrl: 'url', tags: ['tag1','tag2','tag3','tag4'] },
{ username: 'car', imageUrl: 'url', tags: ['tag1','tag2'] }
]
А вот и XML. Это работает только для имени пользователя и изображения. Я не могу понять, как добавить теги к каждому сообщению.
<ListView id="streamListview">
<Templates>
<ItemTemplate name="template" id="template">
<View class="item-container">
<ImageView bindId="pic" class="pic"/>
<Label bindId="username" class="username"/>
</View>
</ItemTemplate>
</Templates>
<ListSection id="section">
<ListItem template="template" class="list-item"/>
</ListSection>
</ListView>
И мой код контроллера (без тегов)
var posts = [];
for (var i=0; i<data.length; i++){
var post = {
template : "template",
pic : { image : data[i].get("imageUrl") },
username : { text : data[i].get("username") }
};
posts.push(post);
}
$.section.setItems(posts);
Как я могу добавить теги (которые кликабельны) к сообщению, если я должен объявить КАЖДЫЙ вид в шаблоне заранее? Каждый массив тегов в моем примере должен иметь разное количество просмотров в зависимости от длины массива. Каждый тег в идеале должен иметь свой собственный элемент UI.Label. Я считаю, что это можно сделать с помощью TableView, но я бы предпочел использовать ListView по соображениям производительности.