2016-05-10 13 views
1

dom-wiederhole ich zwei Arrays bin Anzeige - einer nach dem anderen als ungeordnete Liste (ul) unter Verwendung von Polymer des dom-repeat:Polymer - Startindex für

<ul> 
    <template is="dom-repeat" items="{{array1}}" index-as="position_id"> 
    <li on-tap="select1" class$="{{_selectedStyle(selectedId, position_id)}}"> 
     {{item.fileName}} 
    </li> 
    </template> 
    <template is="dom-repeat" items="{{array2}}" index-as="position_id"> 
    <li on-tap="select2" class$="{{_selectedStyle(selectedId, position_id}}"> 
     {{item.fileName}} 
    </li> 
    </template> 
</ul> 
... 
_selectedStyle: function (selectedPosId, posId) { 
    if (selectedPosId && posId){ 
    return (selectedPosId === posId) ? "selected" : ""; 
    } 
} 

Ich möchte Klasse auf das ausgewählte Element anzuwenden, aber es ist offensichtlich funktioniert nicht richtig, da für beide dom-repeat-Vorlagen selectedId und position_id gleich sind (beide beginnen bei 0). Idealerweise wäre Offset auf der zweiten dom-repeat Vorlage, aber es scheint, dass diese Funktion nicht unterstützt wird. Was wäre in diesem Fall die beste Problemumgehung?

Antwort

2

Geben Sie einfach auch die Offset (Länge array1) und fügen Sie sie in _selectedStyle() (siehe Kommentare unten):

<li on-tap="select2" class$="{{_selectedStyle(selectedId, position_id, array1.length}}"> 
    {{item.fileName}} 
</li> 
+0

Ich kann mich irren, aber ich denke Ausdrücke nicht in Funktionsparameter unterstützt. Ich habe versucht mit Array-Länge und mit nur Nummer - in diesem Fall Funktion '_selectedStyle' wird überhaupt nicht aufgerufen. – streetturtle

+0

Entschuldigung, das könnte sein. Ich habe seit einiger Zeit kein Polymer mehr benutzt. Sie müssten eine Funktion erstellen, in der Sie beide Werte übergeben und das Ergebnis erhalten können. Vielleicht können Sie '_selectedStyle (...)' ändern, um 3 Parameter zu akzeptieren und den 2. und 3. Parameter hinzuzufügen. –

+1

Ja, das hat mir gefallen. Ich habe den dritten Parameter hinzugefügt, der versetzt ist. '_selectedStyle' Funktion ist jetzt wie folgt:' return (selectedPosId === posId + (offset || 0))? "ausgewählt": ""; "Wie auch immer, danke! – streetturtle

Verwandte Themen