Titanium Alloy ListView geschachteltes Modell Array von Tags
Ich benutze Titanium Alloy Version 3.2. Ich habe eine Sammlung von Beiträgen in einer Listenansicht. Meine Daten sehen so aus:
[
{ 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'] }
]
Und hier ist die XML. Dies funktioniert nur für Benutzername und Bild. Ich kann nicht herausfinden, wie ich die Tags zu jedem Beitrag hinzufüge.
<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>
Und mein Controller-Code (ohne die Tags)
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);
Wie kann ich dem Beitrag Tags hinzufügen (die anklickbar sind), wenn ich JEDE Ansicht in der Vorlage vorher deklarieren soll? Jedes Tag-Array in meinem Beispiel benötigt abhängig von der Array-Länge eine andere Anzahl von Ansichten. Jedes Tag wäre idealerweise ein eigenes UI.Label-Element. Ich glaube, dies kann mit einer TableView durchgeführt werden, aber ich würde ListView aus Leistungsgründen vorziehen.