2017-06-07 3 views
2

Ich möchte ein benutzerdefiniertes Element erstellen, das ein Array durchläuft und das auf jedes Element im Array anwendet. Zum Beispiel würde die Ansicht Vorlage des benutzerdefinierten Elements enthält so etwas wie:Kann in Aurelia ein Slot in einer Wiederholung verwendet werden?

<div repeat.for="i of items"> 
    <div with.bind="i"> 
    <slot></slot> 
    </div> 
</div> 

Wenn ich die repeat.for entfernen und with.bind Attribute, zeigt die Schlitz ein einziges Mal. Gibt es eine Möglichkeit, es für jeden Punkt in der Liste wiederholen zu lassen?

Antwort

4

Nein, Sie können heute keine Steckplätze mit repeat.for oder bind verwenden. Dazu müssen Sie auswechselbare Teile verwenden. Zum Beispiel:

<div repeat.for="i of items"> 
    <div with.bind="i"> 
    <template replaceable part="content"></template> 
    </div> 
</div> 

Verbrauch:

<my-component> 
    <template replace-part="content">Some Content - ${somePropertyOfI}</template> 
</my-component> 

Runnable Beispiel: https://gist.run/?id=29aa1c1199f080c9ba0e72845044799b

+0

die aurelia Blog http://aurelia.io/blog/2016/05/23/aurelia-shadow-dom -v1-slots-prerelease/sagt: "Alles oben genannte ist mit Aurelia implementiert. Es funktioniert auch mit Template-Controllern wie if und repeat, die Inhalte dynamisch erzeugen können. Wir haben unsere @ child- und @ children-Dekoratoren repariert, um das Neue zu verstehen Modell auch. " aber es scheint nicht zu funktionieren –

+0

@ MosèBottacini Zum Zeitpunkt dieser Antwort war es nicht möglich,'repeat' oder 'bind' mit' 'zu verwenden. Erklären Sie mir, was Sie tun möchten, und ich werde versuchen, Ihnen eine Lösung zu geben –

+0

hat gerade signalisiert, dass die Dokumentation wahrscheinlich nicht synchron ist, da es eindeutig besagt, dass es getan werden könnte –

Verwandte Themen