Sencha touch 2 : erste Element-index in itemTpl
In der Dokumentation von XTemplate, {#} kann verwendet werden, um das aktuelle array-index.
Wenn ich es in der itemTpl einer xlist, ich bekomme immer 1 anstatt des index:
{
xtype: 'list',
store: 'myStore',
itemTpl:new Ext.XTemplate(
'<tpl for=".">',
'<div>Item n°{#1}</div>',
'</tpl>'
),
}
erzeugt immer "Item-n°1" auch wenn mein Shop enthält mehrere Elemente.
Mache ich etwas falsch ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beachten Sie, dass Sie ein Ext.Liste die fetchs Daten aus einer Ext.Daten.Speichern, und nicht ein Array, so XTemplate Prozesse nur 1 Stück zu einer Zeit. Das ist, warum die {#} (auch genannt xindex) immer 1 zurück.
Vorschlagen, um zu arbeiten, um dieses ist, um Sie manuell den index der Elemente in Ihrem Geschäft, sobald es geladen ist, so wie hier: (- listener für Ihren Shop)
Hoffe, es hilft.
addrecords
,removerecords
,updaterecords
oder einfachrefresh()
Veranstaltung.Ich lief in das gleiche problem und ich kam mit dieser:
Ich bevorzuge diese Lösung, als das hinzufügen zusätzlicher Eigenschaften in den laden.
Und btw, Sie müssen nicht
<tpl for="."></tpl>
im itemTpl, es ist implizit.Dies ist "as designed", da Sie nicht Schleifen auf einer record/array hier. Das template instanziiert wird, wird einmal für jedes element des Ladens.
Siehe auch http://www.sencha.com/forum/showthread.php?179728-Autonumber-in-Template-in-DataView
itemTpl
arbeitet mitdata
welcher ein array ist. So ist die Schleife auf ein array scheint nicht richtig zu?Ich lief in das gleiche problem, lief in diesem thread & dachte, es sollte eine bessere Lösung sein.
Nach einem Blick in den code von DataView, ist mir Folgendes aufgefallen überschreibbare Methode :
So gibt es einen index, Sie müssen nur hinzufügen, ein wenig überschreiben :).
Ich bevorzuge diese schnelle Lösung, indem die Register meiner dataobject und überschreiben einer Methode, die für übergeordnete Zwecke.